Ajoutez un onglet produit à Woocommerce avec une case à cocher pour ajouter une fonctionnalité permettant d'ajouter un deuxième "Ajouter au panier".
P粉262113569
2023-07-31 15:01:29
<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>
Vous pouvez utiliser le hook `woocommerce_product_meta_start`. Veuillez consulter le code ci-dessous.
Après test, le code fonctionne.