【问题标题】:Remove "add to cart" button without removing Woocommerce Product Add-ons删除“添加到购物车”按钮而不删除 Woocommerce 产品附加组件
【发布时间】:2018-05-21 21:37:51
【问题描述】:

我正在使用带有 WooCommerce 产品附加组件插件的 WooCommerce。我看到很多答案都删除了单个产品页面上的“添加到购物车”按钮。 他们还删除了 WooCommerce 产品插件。

谁能提供有关如何在删除“添加到购物车”按钮的同时添加回“附加组件”的见解?

这是我必须删除“添加到购物车”按钮但也删除附加组件的内容:

add_action( 'woocommerce_single_product_summary', 'remove_add_to_cart_buttons', 1 );

function remove_add_to_cart_buttons() {
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}

【问题讨论】:

    标签: php wordpress woocommerce product custom-fields


    【解决方案1】:

    WooCommerce 产品插件需要 woocommerce_before_add_to_cart_button 操作挂钩来显示所有插件字段和数据。

    因此,下面的代码将适用于简单和可变的产品,只需删除添加到购物车和数量字段,允许显示产品附加字段和数据。

    add_action( 'woocommerce_single_product_summary', 'remove_add_to_cart_buttons', 1 );
    function remove_add_to_cart_buttons() {
        global $product;
    
        // For simple product types
        if( $product->is_type( 'simple' ) ) {
            remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
            add_action( 'woocommerce_single_product_summary', 'custom_before_single_add_to_cart', 30 );
        }
        // For variable product types (keeping attribute select fields)
        elseif( $product->is_type( 'variable' ) ) {
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
        }
    }
    function custom_before_single_add_to_cart(){
        global $product;
    
        if ( ! $product->is_purchasable() ) return;
    
        // Simple Products
        if ( $product->is_in_stock() ) {
            do_action( 'woocommerce_before_add_to_cart_form' ); // (Optional)
    
            echo '<form class="cart" method="post" enctype="multipart/form-data">'; // (Optiona
    
                ## @since 2.1.0.
                do_action( 'woocommerce_before_add_to_cart_button' ); // <== NEEDED by Add-ons
    
                ## @since 3.0.0.
                do_action( 'woocommerce_before_add_to_cart_quantity' ); // Optional
    
                ## @since 3.0.0.
                do_action( 'woocommerce_after_add_to_cart_quantity' ); // Optional
    
                ## @since 2.1.0.
                do_action( 'woocommerce_after_add_to_cart_button' ); // Optional
    
            echo '</form>'; // Optional
    
            do_action( 'woocommerce_after_add_to_cart_form' ); // Optional
        }
    }
    

    代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

    经过测试并且有效。

    添加到购物车按钮被移除后,您将无法提交附加组件数据

    【讨论】:

    • 谢谢!这正是我想要的。谢谢大家的帮助!!!
    猜你喜欢
    • 1970-01-01
    • 2014-05-26
    • 2012-08-16
    • 2012-08-21
    • 2019-08-04
    • 2017-05-30
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多