0
votes

Comment faire un champ de formulaire requis dans la caisse de Woocommerce

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. XXX


0 commentaires

4 Réponses :


0
votes

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>


0 commentaires

0
votes

1) Pour les champs de facturation et d'expédition normaux ou personnalisés, vous pouvez utiliser woocommerce_billing_fields code> ou wooCommerce_shippields code> Crochets d'action sur la page de paiement comme suit.

Il fera une commande personnalisée Champ requis sans qu'il soit nécessaire d'ajouter un script de validation fort> et de l'enregistrer dans la commande. Le champ apparaîtra également dans mon compte Modifier des adresses Section du champ. P>

Certains explications: p>

  • la classe 'update_totals_on_change' code> permet de déclencher "la commande de mise à jour" sur le changement. li>
  • le 'requis' code> strong> attribuez le champ requis ou non li>
  • Le 'Priority' 'Priority' code> strong> Attribut vous permet de changer l'emplacement du champ. LI> ul>

    Code: P>

    // 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']) );
        }
    }
    


0 commentaires

0
votes
**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.' ) );
    } 
} 

0 commentaires

0
votes
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.' ) );
    } 
} 

0 commentaires