搜尋

首頁  >  問答  >  主體

使用複選框新增產品標籤到Woocommerce,以新增功能來新增第二個「加入購物車」。

<p>我需要一些您的幫助,非常感謝您的努力! </p><p>我的問題是,安裝的插件取代了產品頁面上的標準添加到購物車按鈕。我不想改變它,並且我需要在其下方添加第二個添加到購物車按鈕。問題是,另一個用於免費產品樣品的插件需要常規的添加到購物車按鈕。 </p><p>當我新增全域腳本時,它在所有產品上都有效。 </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>我希望將此功能新增至產品標籤中,並且可以透過複選框在所選產品上啟用或停用。 </p><p>到目前為止,我的程式碼沒有起到任何作用。複選框可以工作,複選框的保存也正常。但是程式碼片段沒有在產品前端頁面執行加入購物車的命令。 </p><p><br /></p> <pre class="brush:php;toolbar:false;">// Add 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, // true or false, show description directly or as tooltip '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' ); // Add action when checkbox is selected with 'yes' function 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粉262113569P粉262113569514 天前566

全部回覆(1)我來回復

  • P粉543344381

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

    您可以使用`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 );

    經過測試,程式碼有效。

    回覆
    0
  • 取消回覆