recherche

Maison  >  Questions et réponses  >  le corps du texte

Ajoutez un onglet produit à Woocommerce avec une case à cocher pour ajouter une fonctionnalité permettant d'ajouter un deuxième "Ajouter au panier".

<p>J'aurais besoin de votre aide, merci beaucoup pour vos efforts ! </p><p>Mon problème est que le plugin installé remplace le bouton standard Ajouter au panier sur la page produit. Je ne veux pas le changer et je dois ajouter un deuxième bouton Ajouter au panier en dessous. Le problème est qu’un autre plugin pour des échantillons de produits gratuits nécessite un bouton d’ajout au panier régulier. </p><p>Lorsque j'ajoute le script global, il fonctionne sur tous les produits. </p><p><br /></p> <pre class="brush:php;toolbar:false;">Add_action( 'woocommerce_product_meta_start', 'woocommerce_template_single_add_to_cart, 1 );</pre> <p>Je souhaite que cette fonctionnalité soit ajoutée à l'onglet produit et puisse être activée ou désactivée sur les produits sélectionnés via une case à cocher. </p><p>Jusqu'à présent, mon code n'a rien fait. Les cases à cocher fonctionnent et les cases à cocher s'enregistrent correctement. Mais l'extrait de code n'exécute pas la commande d'ajout au panier sur la page d'interface du produit. </p><p><br /></p> <pre class="brush:php;toolbar:false;">// Ajouter un champ de case à cocher à l'onglet Produit dans la zone d'administration fonction add_checkbox_to_product_tab() { // Ajout d'un champ de case à cocher à l'onglet Général woocommerce_wp_checkbox( tableau( 'id' => 'add_to_cart_checkbox', 'étiquette' => 'Warenkorb Hinzufügen', 'desc_tip' => false, // true ou false, afficher la description directement ou sous forme d'info-bulle 'description' => 'oui' ) ); } add_action( 'woocommerce_product_options_general_product_data', 'add_checkbox_to_product_tab' ); // Enregistrer la valeur du champ de la case à cocher fonction save_checkbox_value( $produit ) { $checkbox = isset( $_POST['add_to_cart_checkbox'] ) 'oui' : 'non'; $product->update_meta_data( 'add_to_cart_checkbox', $checkbox ); } add_action( 'woocommerce_admin_process_product_object', 'save_checkbox_value' ); // Ajouter une action lorsque la case est cochée avec 'oui' fonction add_action_when_checkbox_selected( $product_id ) { $checkbox_value = get_post_meta( $product_id, '_add_to_cart_checkbox', true ); if ( $checkbox_value == 'oui' ) { do_action( 'woocommerce_product_meta_start' ); do_action( 'woocommerce_template_single_add_to_cart' ); } } add_action( 'woocommerce_template_single_add_to_cart', 'add_action_when_checkbox_selected', 1 );</pre> <p><br /></p>
P粉262113569P粉262113569514 Il y a quelques jours569

répondre à tous(1)je répondrai

  • P粉543344381

    P粉5433443812023-08-01 11:44:52

    Vous pouvez utiliser le hook `woocommerce_product_meta_start`. Veuillez consulter le code ci-dessous.

    // Add a checkbox field to the Product tab in the admin area
    function add_checkbox_to_product_tab() {
        // Add checkbox field to the General tab
        woocommerce_wp_checkbox( array(
            'id' => 'add_to_cart_checkbox',
            'label' => 'Warenkorb Hinzufügen',
            'desc_tip' => false,
            'description' => 'ja'
        ) );
    }
    add_action( 'woocommerce_product_options_general_product_data', 'add_checkbox_to_product_tab' );
    
    // Save checkbox field value
    function save_checkbox_value( $product ) {
        $checkbox = isset( $_POST['add_to_cart_checkbox'] ) ? 'yes' : 'no';
        $product->update_meta_data( 'add_to_cart_checkbox', $checkbox );
    }
    add_action( 'woocommerce_admin_process_product_object', 'save_checkbox_value' );
    
    // Remove standard "Add to Cart" button if checkbox value is 'no'
    function add_custom_add_to_cart_button() {
        global $product;
        $checkbox_value = $product->get_meta( 'add_to_cart_checkbox' );
        if ( $checkbox_value == 'yes' ) {
            // Add your custom "Add to Cart" button code here
            echo '<a href="' . esc_url( $product->add_to_cart_url() ) . '" class="button alt">Custom Add to Cart</a>';
        }
    }
    add_action( 'woocommerce_product_meta_start', 'add_custom_add_to_cart_button', 40 );

    Après test, le code fonctionne.

    répondre
    0
  • Annulerrépondre