Requiere: Charitable Pro 1.8.16+
Charitable Ambassadors 3.0.0+
La tarjeta Reclutar Recaudadores de Fondos se encuentra en la parte superior de la página Mis Campañas de un embajador elegible. Muestra su URL de invitación personal, botones para compartir, una línea de estadísticas y un interruptor "Tus Reclutados", y es la superficie más personalizada en Embajadores porque cada programa quiere poner un mensaje ligeramente diferente antes del enlace de reclutamiento.
Esta página es la referencia para los filtros y acciones que te permiten personalizar la tarjeta de reclutamiento sin bifurcar la plantilla.
¿Dónde se encuentra?
La tarjeta se renderiza dentro de la acción charitable_ambassadors_my_campaigns_before_grid; en otras palabras, justo antes de la cuadrícula de campañas en la página [charitable_my_campaigns].
Su ruta de plantilla: templates/invite/recruit-card.php. Ruta de anulación de tema: your-theme/charitable-pro/charitable-ambassadors/invite/recruit-card.php.
La personalización más común: enlace para obtener más información
Tal como está, la tarjeta no tiene un enlace para obtener más información; dejamos el espacio vacío para que los sitios que no lo necesiten permanezcan limpios. Para activarlo, establece tanto la URL como (opcionalmente) la etiqueta:
add_filter( 'charitable_ambassadors_recruit_card_learn_more_url', function () {
return home_url( '/ambassador-handbook/recruiting/' );
} );
add_filter( 'charitable_ambassadors_recruit_card_learn_more_label', function () {
return 'Tips for inviting friends';
} );
El enlace se renderiza en línea en la parte inferior de la tarjeta con un destino de enlace externo (para que se abra en una nueva pestaña sin perder el lugar del usuario).
Si la URL está vacía (por defecto), el espacio se suprime por completo, sin un marcador de posición vacío.
Inyectar contenido personalizado (hook de pie de página)
Para *más* que un solo enlace (un breve discurso, una incrustación de video, un widget de "ver los mejores reclutadores de esta semana"), usa la acción del pie de página:
add_action( 'charitable_ambassadors_recruit_card_footer', function ( $user_id, $token, $invite_url ) {
echo '<p class="recruit-card-tip">Pro tip: share with two people who would care about this cause.</p>';
echo '<a class="button" href="https://example.com/recruit-video">Watch the 2-minute guide</a>';
}, 10, 3 );
La acción se ejecuta justo encima del espacio para obtener más información. Tu callback es responsable de su propio escape.
Elegibilidad: controla quién ve la tarjeta
La tarjeta solo se renderiza para los usuarios que son *elegibles para reclutar*. Eso se define mediante el filtro charitable_ambassadors_user_can_invite:
add_filter( 'charitable_ambassadors_user_can_invite', function ( $can, $user_id, $campaign_id_or_null ) {
// Only verified ambassadors can recruit.
if ( '1' !== get_user_meta( $user_id, '_charitable_ambassadors_verified', true ) ) {
return false;
}
return $can;
}, 10, 3 );
El filtro es global: controla tanto la tarjeta Mis Campañas como las ventanas emergentes de Reclutar por campaña y la vista previa de administrador "ver como reclutador".
Para anular específicamente la visibilidad de la tarjeta (sin afectar otras superficies), filtra charitable_ambassadors_show_recruit_card:
add_filter( 'charitable_ambassadors_show_recruit_card', function ( $show, $user_id ) {
// Hide the card on Mondays. Don't ask.
return $show && 'Mon' !== gmdate( 'D' );
}, 10, 2 );
Personaliza el texto del estado vacío
Cuando un reclutador no tiene reclutas todavía, la línea de estadísticas de la tarjeta muestra un mensaje suave de "aún no hay reclutas". Personaliza eso:
add_filter( 'charitable_ambassadors_recruit_card_empty_text', function () {
return 'No recruits yet - your link is ready when you are.';
} );
Filtro espejo para el estado vacío de la vista Tus Reclutados:
add_filter( 'charitable_ambassadors_recruits_view_empty_text', function ( $message, $status, $user_id ) {
if ( 'rejected' === $status ) {
return 'No rejected recruits - your standards are solid!';
}
return $message;
}, 10, 3 );
Clase del cuerpo
La tarjeta tiene su propia clase con ámbito para CSS:
.charitable-ambassadors-recruit-card
Coloca tus anulaciones debajo de ese selector. La tarjeta respeta el Color de Acento Primario a través de --cap-accent.
Consejos
- Añade un enlace para obtener más información. Es una victoria de bajo esfuerzo; incluso un manual interno de una página es mejor que ningún enlace.
- Mantén el pie de página conciso. La tarjeta está pensada para ser una llamada a la acción táctil, no una conferencia. Una línea corta, un botón.
- Prueba en móvil. Las URL largas o los botones anchos pueden desbordar la tarjeta en vistas estrechas.
- Filtrar la elegibilidad para programas especiales. “Solo los embajadores verificados pueden reclutar” es una política de alto impacto.
Referencia del desarrollador
Filtros
| Filtro | Predeterminado | Propósito |
|---|---|---|
charitable_ambassadors_recruit_card_learn_more_url | '' | URL para el enlace Más información. Dejar vacío suprime el enlace. |
charitable_ambassadors_recruit_card_learn_more_label | “Más información” | Texto de la etiqueta. |
charitable_ambassadors_recruit_card_empty_text | calculado | Texto de estado vacío cuando no hay reclutas. |
charitable_ambassadors_recruits_view_empty_text | calculado | Texto de estado vacío en la pestaña Tus reclutas. Recibe ($message, $status, $user_id). |
embajadores_caritativos_mostrar_tarjeta_reclutar | calculado | Anulación de visibilidad específica de la tarjeta. Recibe ($show, $user_id). |
charitable_ambassadors_user_can_invite | calculado | Comprobación de elegibilidad subyacente. Recibe ($can, $user_id, $campaign_id). |
embajadores_caritativos_tarjeta_reclutar_compartir_redes | configuración del sitio | Anula qué redes para compartir aparecen en la tarjeta. |
Acciones
| Acción | Argumentos | Se dispara cuando |
|---|---|---|
charitable_ambassadors_recruit_card_footer | $user_id, $token, $invite_url | Dentro de la tarjeta, justo encima del enlace Más información. |
embajadores_caritativos_tarjeta_reclutar_antes | $user_id | Justo antes de que comience el marcado de la tarjeta. |
embajadores_caritativos_tarjeta_reclutar_despues | $user_id | Justo después de que termine el marcado de la tarjeta. |
Ventana emergente de reclutamiento por campaña
Los propietarios de campañas principales también obtienen un botón de reclutamiento por campaña en la fila de acciones de cada campaña. La ventana emergente que se abre tiene su propia acción:
add_action( 'charitable_ambassadors_recruit_popover_footer', function ( $campaign_id, $user_id, $token, $invite_url ) {
echo '<p>Sharing this link recruits for "' . esc_html( get_the_title( $campaign_id ) ) . '" specifically.</p>';
}, 10, 4 );
Ruta de la plantilla
templates/invite/recruit-card.php # the My Campaigns recruit card
templates/invite/recruit-card-popover.php # the per-campaign recruit popover
Ruta de anulación de tema: your-theme/charitable-pro/charitable-ambassadors/invite/recruit-card.php.
Capacidades
Renderizado público: la tarjeta decide por usuario si mostrarse a través del filtro de elegibilidad. Sin puerta de acceso a capacidades.
Ejemplos de personalización
Ocultar la tarjeta a los administradores (solo los embajadores deberían verla):
add_filter( 'charitable_ambassadors_show_recruit_card', function ( $show, $user_id ) {
$user = get_user_by( 'id', $user_id );
if ( $user && user_can( $user, 'administrator' ) ) {
return false;
}
return $show;
}, 10, 2 );
Añadir un botón “Copiar mensaje corto” a la tarjeta:
add_action( 'charitable_ambassadors_recruit_card_footer', function ( $user_id, $token, $invite_url ) {
$msg = 'Help me fundraise for this cause! ' . $invite_url;
echo '<button class="button" type="button" data-clipboard-text="' . esc_attr( $msg ) . '">Copy short message</button>';
}, 10, 3 );
Renderizar una variante de tarjeta diferente para un rol de usuario específico:
add_filter( 'charitable_ambassadors_recruit_card_template', function ( $template, $user_id ) {
if ( user_can( $user_id, 'verified_ambassador' ) ) {
return 'recruit-card-verified.php'; // your custom partial
}
return $template;
}, 10, 2 );
Restringir las redes para compartir que se muestran en la tarjeta solo a Copiar enlace + Correo electrónico:
add_filter( 'charitable_ambassadors_recruit_card_share_networks', function () {
return [ 'email', 'copy' ];
} );
Relacionado
- Invitaciones – el documento principal de la característica.
- Mis campañas: aquí es donde vive la tarjeta.
- Temas: el color de acento que respeta la tarjeta.
- Redes para compartir: el catálogo de redes.
- Hooks y filtros en Embajadores: referencia completa.



