2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #526874
    mosnier
    Participant
    Points: 13 pts

    bonjour a tous …

    je viens vous demander des conseils car je crée une boutique en ligne de vêtement et j’aimerai ajouter une option pour que le client puisse floquer ou pas (selon son choix) un nom sur les vêtements. Quelle extension installée pour créer cette option ? En vous remerciant d’avance pour cette aide très précieuse.

    toemly42

    ====================
    depanagewp
    vpsa2
    #526929
    El Condorito
    Participant
    Points: 74 pts
    Membre 2 étoiles

    Salut,

    Tu n’as pas besoin d’un plugin pour cela, ou plutôt tu peux créer ton propre plugin :

    /**

    * @snippet       Add input field to products – WooCommerce

    * @author        Condorito

    * @compatible    WooCommerce 8

    * @community     https://condorito.fr/

    */

     

    // —————————————–

    // 1. Show custom input field above Add to Cart

     

    add_action( ‘woocommerce_before_add_to_cart_button’, ‘condorito_product_add_on’, 9 );

     

    function condorito_product_add_on() {

    $value = isset( $_POST[‘custom_text_add_on’] ) ? sanitize_text_field( $_POST[‘custom_text_add_on’] ) :  »;

    echo ‘

    <label>Custom Text Add-On <abbr class= »required » title= »required »>*</label>

    <input name= »custom_text_add_on » value= »‘ . $value . ‘ »>

    ‘;

    }

     

    // —————————————–

    // 2. Throw error if custom input field empty

     

    add_filter( ‘woocommerce_add_to_cart_validation’, ‘condorito_product_add_on_validation’, 10, 3 );

     

    function condorito_product_add_on_validation( $passed, $product_id, $qty ) {

    if ( isset( $_POST[‘custom_text_add_on’] ) && sanitize_text_field( $_POST[‘custom_text_add_on’] ) ==  » ) {

    wc_add_notice( ‘Custom Text Add-On is a required field’, ‘error’ );

    $passed = false;

    }

    return $passed;

    }

     

    // —————————————–

    // 3. Save custom input field value into cart item data

     

    add_filter( ‘woocommerce_add_cart_item_data’, ‘condorito_product_add_on_cart_item_data’, 10, 2 );

     

    function condorito_product_add_on_cart_item_data( $cart_item, $product_id ){

    if ( isset( $_POST[‘custom_text_add_on’] ) ) {

    $cart_item[‘custom_text_add_on’] = sanitize_text_field( $_POST[‘custom_text_add_on’] );

    }

    return $cart_item;

    }

     

    // —————————————–

    // 4. Display custom input field value @ Cart

     

    add_filter( ‘woocommerce_get_item_data’, ‘condorito_product_add_on_display_cart’, 10, 2 );

     

    function condorito_product_add_on_display_cart( $data, $cart_item ) {

    if ( isset( $cart_item[‘custom_text_add_on’] ) ) {

    $data[] = array(

    ‘name’ => ‘Custom Text Add-On’,

    ‘value’ => sanitize_text_field( $cart_item[‘custom_text_add_on’] )

    );

    }

    return $data;

    }

     

    // —————————————–

    // 5. Save custom input field value into order item meta

     

    add_action( ‘woocommerce_checkout_create_order_line_item’, ‘condorito_product_add_on_order_item_meta’, 10, 4 );

     

    function condorito_product_add_on_order_item_meta( $item, $cart_item_key, $values, $order ) {

    if ( ! empty( $values[‘custom_text_add_on’] ) ) {

    $item->add_meta_data( ‘Custom Text Add-On’, $values[‘custom_text_add_on’] );

    }

    }

    En espérant que cela puisse t’aider.

    ====================
    depanagewp
    vpsa2
2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.