例如 [此示例][1] 但是,如果未启用“管理库存”,则没有任何通-6ren">
gpt4 book ai didi

php - 针对没有托管库存的 WooCommerce 变体显示 "In Stock"通知

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

我需要针对特定​​情况的帮助。在 WooCommerce 中,如果为简单的产品或变体启用了“管理库存”,则产品页面中会显示通知 => 例如 [此示例][1]
但是,如果未启用“管理库存”,则没有任何通知,我觉得很遗憾,因为即使我不管理库存数量,我仍然想通知我的客户它正好在库存中。
我找到了下面的代码。对于简单的产品,它可以毫无问题地工作。但是,对于可变产品,甚至在选择变体之前就会显示此消息。这当然不行,只有在选择了一个变体之后才应该显示此代码。
有人可以帮我解决这个问题吗?对于可变产品,此消息应仅在选择特定变体后显示。
我制作了一个视频截图,以便更具说明性:https://sgevcen.tinytake.com/tt/NDQzNTU2OF8xNDAyNTU2NA

function mycustom_shop_display_stock() {

global $product;

if ( !$product->get_manage_stock() && $product->is_in_stock() ) {
echo '<p class="stock in-stock">In Stock</p>';
}
}
add_action( 'woocommerce_before_add_to_cart_button', 'mycustom_shop_display_stock', 11 );


[1]: /image/aFnN1.png

最佳答案

请尝试以下操作,它应该允许仅针对可变产品(以及简单产品)的变体显示您的自定义库存可用性:

add_filter( 'woocommerce_get_stock_html', 'filter_wc_get_stock_html', 10, 2 );
function filter_wc_get_stock_html( $html, $product ) {
if ( ! $product->is_type('variable') && ! $product->get_manage_stock() && $product->is_in_stock() ) {
$html = '<p class="stock in-stock">' . __( "In Stock", "woocommerce" ) . '</p>';
}

return $html;
}
代码位于事件子主题(或事件主题)的 functions.php 文件中。测试和工作。

要排除某些产品类别,请使用以下内容(与您的评论相关):
add_filter( 'woocommerce_get_stock_html', 'filter_wc_get_stock_html', 10, 2 );
function filter_wc_get_stock_html( $html, $product ) {
// Here define the product categories to be excluded (can be term Ids, slugs or names)
$terms_excl = array('hoodies', 'albums');

$product_id = $product->is_type('variation') ? $product->get_parent_id() : $product->get_id();

if ( ! $product->is_type('variable') && ! $product->get_manage_stock() && $product->is_in_stock()
&& ! has_term( $terms_excl, 'product_cat', $product_id ) ) {
$html = '<p class="stock in-stock">' . __( "In Stock", "woocommerce" ) . '</p>';
}

return $html;
}
代码位于事件子主题(或事件主题)的 functions.php 文件中。测试和工作。

相关主题: Display custom stock message if "Manage Stock" is not enabled in WooCommerce

关于php - 针对没有托管库存的 WooCommerce 变体显示 "In Stock"通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62778565/

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