Fügen Sie Woocommerce eine Produktregisterkarte mit einem Kontrollkästchen hinzu, um die Funktionalität zum Hinzufügen eines zweiten „In den Warenkorb' hinzuzufügen.
P粉262113569
P粉262113569 2023-07-31 15:01:29
0
1
527
<p>Ich könnte etwas Hilfe von Ihnen gebrauchen, vielen Dank für Ihre Bemühungen! </p><p>Mein Problem ist, dass das installierte Plugin die Standardschaltfläche „In den Warenkorb“ auf der Produktseite ersetzt. Ich möchte es nicht ändern und muss darunter eine zweite Schaltfläche zum Hinzufügen zum Warenkorb hinzufügen. Das Problem ist, dass ein anderes Plugin für kostenlose Produktproben eine reguläre Schaltfläche zum Hinzufügen zum Warenkorb erfordert. </p><p>Wenn ich das globale Skript hinzufüge, funktioniert es auf allen Produkten. </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>Ich möchte, dass diese Funktion zur Produktregisterkarte hinzugefügt wird und bei ausgewählten Produkten über ein Kontrollkästchen aktiviert oder deaktiviert werden kann. </p><p>Bisher hat mein Code nichts bewirkt. Die Kontrollkästchen funktionieren und die Kontrollkästchen werden problemlos gespeichert. Das Code-Snippet führt jedoch nicht den Befehl „Zum Warenkorb hinzufügen“ auf der Produkt-Frontend-Seite aus. </p><p><br /></p> <pre class="brush:php;toolbar:false;">// Kontrollkästchenfeld zur Registerkarte „Produkt“ im Admin-Bereich hinzufügen Funktion add_checkbox_to_product_tab() { // Kontrollkästchenfeld zur Registerkarte „Allgemein“ hinzufügen woocommerce_wp_checkbox( Array( 'id' => 'add_to_cart_checkbox', 'label' => 'desc_tip' => false, // true oder false, Beschreibung direkt oder als Tooltip anzeigen 'description' => 'ja' ) ); } add_action( 'woocommerce_product_options_general_product_data', 'add_checkbox_to_product_tab' ); // Kontrollkästchenfeldwert speichern Funktion 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' ); // Aktion hinzufügen, wenn das Kontrollkästchen mit „Ja“ ausgewählt ist Funktion add_action_when_checkbox_selected( $product_id ) { $checkbox_value = get_post_meta( $product_id, '_add_to_cart_checkbox', true ); if ( $checkbox_value == 'yes' ) { 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粉262113569
P粉262113569

Antworte allen(1)
P粉543344381

您可以使用`woocommerce_product_meta_start`钩子。请查看下面的代码。

// 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 );

经过测试,代码有效。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage