Dans le formulaire de paiement, j'ai créé un champ Sélectionner. Ma question est de savoir comment dans WordPress ou Woocmmerce Ce camp peut être laissé au besoin.
4 Réponses :
Vous pouvez ajouter un attribut à la balise SELECT
<select required name="shipping_region" id="shipping_region" class="state_select select2-selection--single" autocomplete="address-level1" data-placeholder="" tabindex="-1" aria-hidden="true"> <option>Opción 01</option> <option>Opción 02</option> </select>
1) Pour les champs de facturation et d'expédition normaux ou personnalisés, vous pouvez utiliser Il fera une commande personnalisée Champ requis Certains explications: p> Code: P> woocommerce_billing_fields code> ou
wooCommerce_shippields code> Crochets d'action sur la page de paiement comme suit.
'update_totals_on_change' code> permet de déclencher "la commande de mise à jour" sur le changement. li>
'requis' code> strong> attribuez le champ requis ou non li>
'Priority' 'Priority' code> strong> Attribut vous permet de changer l'emplacement du champ. LI>
ul>
// Display field
add_action( 'woocommerce_after_checkout_shipping_form', 'display_shipping_region_after_checkout_shipping_form', 10, 1 );
function display_shipping_region_after_checkout_shipping_form ( $checkout ) {
woocommerce_form_field( 'shipping_region', array(
'type' => 'select',
'label' => __("Region", "woocommerce") ,
'class' => array('form-row-wide','update_totals_on_change'),
'required' => true,
'options' => array(
'' => __("Choose a region please"),
'option-1' => __("Option 01"),
'option-2' => __("Option 02"),
'option-3' => __("Option 03"),
),
'priority' => 100,
'clear' => true,
), $checkout->get_value( 'shipping_region' ) );
}
// Field Validation
add_action('woocommerce_checkout_process', 'shipping_region_custom_checkout_field_validation');
function shipping_region_custom_checkout_field_validation() {
if ( isset($_POST['shipping_region']) && empty($_POST['shipping_region']) )
wc_add_notice( __( 'Please select something into Region field.' ), 'error' );
}
// Save Field value
add_action( 'woocommerce_checkout_create_order', 'action_checkout_create_order_callback', 10, 2 );
function action_checkout_create_order_callback( $order, $data ) {
if ( isset($_POST['shipping_region']) && empty($_POST['shipping_region']) ) {
$order->update_meta_data( '_shipping_region', esc_attr($_POST['shipping_region']) );
if( $order->get_user_id() > 0 )
update_user_met( $order->get_user_id(), 'shipping_region', esc_attr($_POST['shipping_region']) );
}
}
**If You Have Created Your Custom Field at the checkout page** add_action( 'woocommerce_after_checkout_validation', 'shipping_time_optionss', 9999, 2); function shipping_time_optionss( $fields, $errors ){ // if any validation errors if ( empty( $_POST['woo_shipping_time'] ) ) { $errors->add( 'woocommerce_password_error', __( 'Please Select Shipping Time Option.' ) ); } }
add_action( 'woocommerce_after_checkout_validation', 'shipping_time_optionss', 9999, 2); function shipping_time_optionss( $fields, $errors ){ // if any validation errors if ( empty( $_POST['woo_shipping_time'] ) ) { $errors->add( 'woocommerce_password_error', __( 'Please Select Shipping Time Option.' ) ); } }