删除 "add to cart" 按钮而不删除 Woocommerce 产品附加组件
Remove "add to cart" button without removing Woocommerce Product Add-ons
我正在使用 WooCommerce 和 WooCommerce 产品附加插件。我看到很多答案删除了单个产品页面上的 "add to cart" 按钮。 他们还删除了 WooCommerce 产品附加组件。
任何人都可以提供见解如何在删除 "add to cart" 按钮的同时添加回 "add-ons" 吗?
这是我必须删除 "add to cart" 按钮但同时删除附加组件的方法:
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 );
}
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 文件或任何插件文件。
已测试并有效。
As the add to cart button is removed, you will not be able to submit the Add-ons data
我正在使用 WooCommerce 和 WooCommerce 产品附加插件。我看到很多答案删除了单个产品页面上的 "add to cart" 按钮。 他们还删除了 WooCommerce 产品附加组件。
任何人都可以提供见解如何在删除 "add to cart" 按钮的同时添加回 "add-ons" 吗?
这是我必须删除 "add to cart" 按钮但同时删除附加组件的方法:
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 );
}
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 文件或任何插件文件。
已测试并有效。
As the add to cart button is removed, you will not be able to submit the Add-ons data