gpt4 book ai didi

php - 在 WooCommerce 中隐藏产品可见性时隐藏添加到购物车按钮

转载 作者:行者123 更新时间:2023-12-02 04:23:23 38 4
gpt4 key购买 nike

每天晚上,我都会将我的供应商产品加载到 CSV 文件中。他们在每个 CSV 中删除和添加产品。如果某个产品不再在 CSV 中并且之前在 CSV 中,我的插件会将产品可见性置于隐藏状态。这样链接仍然有效,因此在搜索控制台等中没有 404 错误,但产品没有显示在我的商店中。

但是,一些客户仍然从不同的域(即 google)访问这些链接。他们着陆在“隐形产品”上,并且可以在产品不再可用时点击“购物车中”按钮。

因此我的问题是:我如何(在 functions.php 中?)确保当产品的可见性被隐藏时,购物车按钮被删除(一个简单的显示:无;会做)。

我使用 WP Import 导入 CSV,产品可见性的方式:隐藏是这样的:

function my_is_post_to_delete($is_post_to_delete, $post_id, $import) {
// Get an instance of the product variation from a defined ID
$my_product = wc_get_product($post_id);
// Change the product visibility
$my_product->set_catalog_visibility('hidden');
// Save and sync the product visibility
$my_product->save();
return false;
}

所以我需要这样的东西:

如果 product_visibility 是“隐藏删除添加到购物车按钮。

最佳答案

当产品目录可见性“隐藏”时,您可以简单地使用 woocommerce_is_purchasable 专用过滤器钩子(Hook),这样:

add_filter('woocommerce_is_purchasable', 'filter_product_is_purchasable', 10, 2 );
function filter_product_is_purchasable( $purchasable, $product ) {
if( 'hidden' === $product->get_catalog_visibility() ) {
$purchasable = false;

}
return $purchasable;
}

代码进入事件子主题(或事件主题)的 functions.php 文件。经过测试并有效。

Note: If customer has a previous cart session with the product in it, it will be removed from it.


更新 - 对于外部(或附属)产品,请尝试使用以下内容:

add_action( 'woocommerce_single_product_summary', 'remove_product_add_to_cart_button', 4 );
function remove_product_add_to_cart_button(){
global $product;

if( $product->is_type('external') && 'hidden' === $product->get_catalog_visibility() ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
}

代码进入事件子主题(或事件主题)的 functions.php 文件。经过测试并有效。

关于php - 在 WooCommerce 中隐藏产品可见性时隐藏添加到购物车按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623046/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com