如何隐藏WooCommerce中的添加到购物车Add to Cart按钮
经营 WooCommerce 在线商店?显然,您希望客户可以轻松地将您的产品添加到购物车中,不是吗?那么,为什么您要隐藏WooCommerce中的“添加到购物车”按钮?有很多情况下,您可能想要隐藏WooCommerce 的“添加到购物车”按钮。以下是其中一些:
- 您将 WooCommerce 仅用作产品的在线目录,而不是用于销售。
- 所展示的产品尚未在市场上销售。
- 所展示的产品目前缺货。
- 该产品仅向特定客户(例如,在 WooCommerce 商店注册的客户)出售。
- 由于某些技术问题,WooCommerce的“添加到购物车”按钮不起作用。
搜索结果提供的解决方案尝试在 Google 上搜索关键词“删除添加到购物车按钮 WooCommerce ”——您会找到几个可靠的搜索结果。大多数搜索结果将指导您使用“删除操作”功能删除以下功能:
- woocommerce_template_loop_add_to_cart
- woocommerce_template_single_add_to_cart
但是,这样做会完全禁用WooCommerce网站上的“添加到购物车”按钮(在所有页面上)。上面的第一个操作有效地禁用了特定产品页面上的“添加到购物车”按钮,而第二个操作在商店页面上实现了相同的结果。此操作的另一个主要问题是,除了隐藏“添加到购物车”按钮外,它还会删除一些 WooCommerce 模板文件,这是不必要的。我们建议在重复使用此“删除操作”代码之前,先了解每行代码的作用,然后根据需要继续。
除了使用此功能之外, WooCommerce上还有更简单、更安全的方法来隐藏“添加到购物车”按钮。让我们在如何隐藏WooCommerce中的添加到购物车Add to Cart按钮以下部分中讨论它们。
隐藏 WooCommerce 中的“添加到购物车”按钮的正确方法
删除单个无法购买的商品的“添加到购物车”按钮
请针对所选商品打开“simple.php”文件(来自 single-product/add-to-cart 文件夹),并将“is_purchaseable”布尔变量设置为“False”。此操作将禁用“购物车”按钮,并将其替换为“Read More阅读更多…”按钮
if ( ! $product->is_purchasable() ) {
return;
}
// For a specific product, override the is_purchasable to false
if ( $product->get_id() == 1234 ) { // Replace 1234 with your product ID
$product->set_is_purchasable(false);
}
要禁用特定产品的“添加到购物车”按钮
您可以选择隐藏特定产品(或产品页面)的“添加到购物车”按钮。为此,您只需删除产品的价格数字即可,这也会删除“添加到购物车”按钮。另一个选项是将产品库存水平设置为零,从而自动禁用购物车按钮。或者,您可以打开“functions.php”文件(从“主题”文件夹)并添加过滤器以禁用特定产品 ID 的“可购买”属性。
add_filter( 'woocommerce_is_purchasable', 'custom_disable_add_to_cart_button', 10, 2 );
function custom_disable_add_to_cart_button( $is_purchasable, $product ) {
// Replace '1234' with the ID of the product you want to disable the 'Add to Cart' button for
if ( $product->get_id() == 1234 ) {
return false;
}
return $is_purchasable;
}
推荐:如何在WooCommerce中删除产品类别uncategorized未分类
要对未登录的用户隐藏“添加到购物车”
您可以选择对未登录(或注册)WooCommerce 商店的用户隐藏“添加到购物车”按钮。这通常用于当您想仅为注册(和登录)用户运行特别优惠(或提供产品折扣)时。为此,您可以打开“functions.php”文件(来自“主题”文件夹)并将“is_purchaseable”变量设置为“True”,仅对已登录的用户有效。
add_filter( 'woocommerce_is_purchasable', 'hide_add_to_cart_for_guests', 10, 2 );
function hide_add_to_cart_for_guests( $is_purchasable, $product ) {
// Check if the user is not logged in
if ( ! is_user_logged_in() ) {
// Set the product as unpurchasable for guests
return false;
}
// Allow the "Add to Cart" button for logged-in users
return $is_purchasable;
}
要根据用户角色删除用户的“添加到购物车”
您可以选择根据用户角色完全删除“添加到购物车”按钮。例如,您可以为所有具有管理权限的用户删除“购物车”按钮。为此,您可以从“functions.php”文件(在“主题”文件夹中)中使用“get_user_role”函数检索用户角色,并将具有管理员角色的用户的“is_purchaseable”变量设置为“False”。
add_filter( 'woocommerce_is_purchasable', 'remove_add_to_cart_for_specific_roles', 10, 2 );
function remove_add_to_cart_for_specific_roles( $is_purchasable, $product ) {
// Get current user role
if ( is_user_logged_in() ) {
$user = wp_get_current_user();
$user_roles = $user->roles;
// Check if the user has the 'administrator' role
if ( in_array( 'administrator', $user_roles ) ) {
return false; // Disable 'Add to Cart' for administrators
}
}
return $is_purchasable; // Allow 'Add to Cart' for other roles
}
要禁用所选产品类别的“添加到购物车”
另一个选项是禁用所选产品类别(例如笔记本电脑)的“添加到购物车”按钮。为此,您可以打开“functions.php”文件(来自“主题”文件夹)并使用“is_product_category”函数检查产品类别。对于选定的产品类别,您可以使用“remove_action”函数来配置禁用“购物车”按钮。
add_action( 'wp', 'disable_add_to_cart_for_selected_categories' );
function disable_add_to_cart_for_selected_categories() {
if ( is_product_category( 'laptops' ) ) { // Replace 'laptops' with your category slug
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
}
推荐:[最新版]WP Rocket插件下载WordPress缓存插件
若要在选定的日期范围内禁用“添加到购物车”
您还可以选择在选定的日期范围内暂时禁用新产品的“添加到购物车”按钮。例如,您可能在某个日期推出新产品。在这种情况下,您可以禁用“购物车”按钮直到产品发布日期,并在发布日期启用它。为此,您可以打开“functions.php”文件(来自“主题”文件夹)并使用“$current_date”和“$release_date”变量分别获取当前日期和发布日期。然后,您可以将“is_purchaseable”变量设置为“False”以符合以下条件:
add_filter( 'woocommerce_is_purchasable', 'disable_add_to_cart_for_date_range', 10, 2 );
function disable_add_to_cart_for_date_range( $is_purchasable, $product ) {
// Set the release date (YYYY-MM-DD format)
$release_date = '2024-12-01';
$current_date = date( 'Y-m-d' );
// Check if the current date is before the release date and if the product ID matches
if ( $current_date < $release_date && $product->get_id() == 1234 ) { // Replace 1234 with your product ID
return false; // Disable "Add to Cart"
}
return $is_purchasable; // Allow "Add to Cart" for other conditions
}
推荐:[最新版]WordPress最先进的短信和通知插件WP SMS Pro
结论
以上是晓得博客为你介绍的如何隐藏WooCommerce中的添加到购物车Add to Cart按钮的全部内容,如上所述,在很多情况下,您需要隐藏、删除或禁用 WooCommerce 商店中的“添加到购物车”按钮。为了给客户创造积极的购物体验,您可以通过多种方式进一步自定义“添加到购物车”按钮。
推荐:使用Seraphinite Accelerator插件提高WordPress网站速度