Agregar un campo personalizado al checkout de woocommerce
Añade el nuevo campo a la página de checkout de WooCommerce.
add_action( 'woocommerce_after_order_notes', 'agrega_mi_campo_personalizado' );
function agrega_mi_campo_personalizado( $checkout )
{
echo '<div id="additional_checkout_field"><h2>' . __('Información Adicional') . '</h2>';
woocommerce_form_field( 'cedula', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'label' => __('Cédula'),
'placeholder' => __('Ej: 31157462'),
), $checkout->get_value( 'cedula' ));
echo '</div>';
}
Actualiza la información del pedido con el nuevo campo.
add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo' );
function actualizar_info_pedido_con_nuevo_campo( $order_id )
{
if ( ! empty( $_POST['cedula'] ) ) {
update_post_meta( $order_id, 'CEDULA', sanitize_text_field( $_POST['cedula'] ) );
}
}
Muestra el valor del nuevo campo en la página de edición del pedido.
add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_campo_personalizado_en_admin_pedido', 10, 1 );
function mostrar_campo_personalizado_en_admin_pedido($order)
{
echo '<p><strong>'.__('Cédula').':</strong> ' . get_post_meta( $order->id, 'CEDULA', true ) . '</p>';
}
Incluye el nuevo campo en el email de notificación del cliente.
add_filter('woocommerce_email_order_meta_keys', 'muestra_campo_personalizado_email');
function muestra_campo_personalizado_email( $keys )
{
$keys[] = 'CEDULA';
return $keys;
}