Los formularios de donación benéfica se pueden personalizar de diversas maneras gracias a la API interna de Charitable. Una de las características más solicitadas es añadir uno o más campos personalizados al formulario de donación de Charitable. En esta publicación, te mostraremos algunos ejemplos de cómo añadir campos personalizados con fragmentos de código.
Incluso si no eres desarrollador, añadir fragmentos de código es fácil. Tienes la opción de instalar un plugin de fragmentos de código de tu elección, pero como Charitable funciona muy bien con WPCode... asumiremos que lo estás utilizando para esta publicación.
Nota: Si eres desarrollador, sabrás que los fragmentos de código se pueden añadir al functions.php de un tema de WordPress o dentro de su propio plugin... si sigues esta ruta, te recomendamos que sigas nuestras instrucciones sobre las mejores prácticas para escribir código con Charitable. También deberías leer nuestra documentación de Charitable_Donation_Field.
Usar WPCode
El primer paso es instalar WPCode. Puedes instalar y activar la versión gratuita como cualquier otro plugin de WordPress. Sin embargo, Charitable tiene un proceso integrado más sencillo. Por favor, lee nuestra documentación sobre cómo instalar y buscar fragmentos de código con WPCode.
Recuerda que una vez añadido (a través de la pantalla de fragmentos de Charitable o copiando y pegando el código) en WPCode, debes darle un título descriptivo, asegurarte de que el tipo de código sea "fragmento PHP" y que hayas seleccionado la inserción automática/ejecutar en todas partes. Haz que el fragmento esté activo/habilitado. Aquí tienes un ejemplo:

Añadir una casilla de verificación
El fragmento de código para una sola casilla de verificación no es muy diferente de un cuadro de texto. Observa el uso de "checkbox" como "type". También puedes ver este código en nuestra biblioteca de fragmentos de WPCode.
/**
* Collect a checkbox field in the donation form.
*
* This snippet only works in Charitable 1.5 or above.
*
* Related examples:
*
* @see Register a text field (detailed example) - https://github.com/Charitable/library/blob/master/donation-form/register-new-donation-field-1.5.php
* @see Register multiple fields - https://github.com/Charitable/library/blob/master/donation-form/register-multiple-donation-fields.php
* @see The old way to add fields - https://github.com/Charitable/library/blob/master/donation-form/legacy/add-checkbox-field-to-donation-form.php
*/
function wpchar_charitable_register_new_checkbox_field() {
if ( ! class_exists("Charitable_Donation_Field" ) ) {
return;
};
/**
* Define a new checkbox field.
*/
$field = new Charitable_Donation_Field( 'new_checkbox_field', array(
'label' => __( 'New Checkbox Field', 'charitable' ),
'data_type' => 'user',
'donation_form' => array(
'type' => 'checkbox',
'show_before' => 'phone',
'required' => false,
),
'admin_form' => true,
'show_in_meta' => true,
'show_in_export' => true,
'email_tag' => array(
'description' => __( 'The new checkbox field' , 'charitable' ),
),
) );
/**
* Register the checkbox field.
*/
charitable()->donation_fields()->register_field( $field );
}
add_action( 'init', 'wpchar_charitable_register_new_checkbox_field' );
Estos son los campos clave para personalizar:
- Etiqueta. Cambia el texto "Mi Campo Personalizado" entre comillas por lo que quieras que diga a los donantes que vean este campo en el formulario de donación público.
- donation_form -> type. Este es el tipo de campo de donación (texto, selección, casilla de verificación, selector de fecha, etc.). Consulta nuestra documentación para ver una lista completa de los tipos de campos de donación admitidos.
- donation_form -> required. Si quieres que este campo sea obligatorio, establécelo en true.
- email_tag. Si quieres incluir el valor introducido en este campo en tu correo electrónico con una etiqueta de correo electrónico en Charitable, añade una descripción aquí para que puedas verla aparecer en la configuración del correo electrónico. Por defecto, Charitable utiliza el valor de la clave como etiqueta ('my_custom_field' en este caso).
Una vez que este código (a través de la pantalla de fragmentos de Charitable o copiando y pegando el código) esté en WPCode, asegúrate de darle un título descriptivo, asegúrate de que el tipo de código sea “fragmento de PHP” y de que hayas seleccionado la inserción automática/ejecución en todas partes. Haz que el fragmento esté activo/habilitado.
Una vez que esté activo, visita un formulario de donación (generado automáticamente por Charitable o a través de un shortcode) y deberías ver tu casilla de verificación. 🎉
Múltiples casillas de verificación
Añadir múltiples casillas de verificación requiere añadir "options" al fragmento y cambiar el tipo a "multi-checkbox".
El siguiente script añade MÚLTIPLES CASILLAS DE VERIFICACIÓN (usando "multi-checkbox" y también se puede encontrar en nuestra biblioteca de fragmentos de WPCode y también puedes ver otros ejemplos más reales de uso de casillas de verificación que añaden un poco más de lógica, como este ejemplo de añadir una casilla de verificación para excluir el recibo de donación.
/**
* Add three checkboxes (the same group) in the donation form.
*
* This snippet only works in Charitable 1.5 or above.
*
*/
function wpchar_charitable_register_new_checkboxes_field() {
if ( ! class_exists("Charitable_Donation_Field" ) ) {
return;
};
/**
* Define a new checkbox field.
*/
$field = new Charitable_Donation_Field( 'new_checkboxes_field', array(
'label' => __( 'New Checkboxes Field', 'charitable' ),
'data_type' => 'user',
'donation_form' => array(
'type' => 'multi-checkbox',
'show_before' => 'phone',
'required' => false,
'options' => array (
'option_1_value' => 'Option One',
'option_2_value' => 'Option Two',
'option_3_value' => 'Option Three',
),
),
'admin_form' => true,
'show_in_meta' => true,
'show_in_export' => true,
'email_tag' => array(
'description' => __( 'The new checkbox field' , 'charitable' ),
),
) );
/**
* Register the checkbox field.
*/
charitable()->donation_fields()->register_field( $field );
}
add_action( 'init', 'wpchar_charitable_register_new_checkboxes_field' );
Esto debería aparecer así en tu formulario de donación:






Deja una respuesta