gpt4 book ai didi

php - WooCommerce 如何检查产品是否有货

转载 作者:行者123 更新时间:2023-12-05 09:30:26 25 4
gpt4 key购买 nike

我认为有一个非常简单的解决方案:

在 WooCommerce 中,我想将我的交货时间过滤器应用于单个产品,但前提是该产品有货/有货。我在检查产品库存时遇到错误。

function filter_woocommerce_germanized_delivery_time_html( $str_replace, $html ) { 

global $product;
if( $product->is_in_stock() ) {

echo '<p class="wc-gzd-additional-info delivery-time-info">';
echo $str_replace;
echo '</p>';
echo '<p class="wc-gzd-additional-info"><a href="https://xyz.at/info/lieferzeiten/" target="_blank"><i class="fas fa-shipping-fast"></i> EU-Lieferzeiten</a></p></span>';

}

}

// add the filter
add_filter( 'woocommerce_germanized_delivery_time_html', 'filter_woocommerce_germanized_delivery_time_html', 10, 2 );

我也试过:

if($product->get_stock_quantity()>0) 

但类似的错误如:

"Uncaught Error: Call to a member function is_in_stock() on null.."

感谢您的帮助!

问候,菲利克斯

最佳答案

错误告诉您您在 null 值上使用了您的函数,这意味着它找不到 $product 变量。

不确定此 woocommerce_germanized_delivery_time_html 过滤器 Hook 来自何处以及您在何处使用 global $product,但您可以使用以下代码段来获取产品。

global $post;
$product = wc_get_product($post->ID);

现在你的整个代码应该是这样的:

add_filter( 'woocommerce_germanized_delivery_time_html', 'filter_woocommerce_germanized_delivery_time_html', 10, 2 );

function filter_woocommerce_germanized_delivery_time_html($str_replace, $html)
{

global $post;

$product = wc_get_product($post->ID);

if ($product->is_in_stock()) {

echo '<p class="wc-gzd-additional-info delivery-time-info">';
echo $str_replace;
echo '</p>';
echo '<p class="wc-gzd-additional-info">';
echo '<a href="https://xyz.at/info/lieferzeiten/" target="_blank"><i class="fas fa-shipping-fast"></i> EU-Lieferzeiten</a>';
echo '</p>';
} else{
return $str_replace;
}

}

或者您可以这样获取库存数量:

add_filter( 'woocommerce_germanized_delivery_time_html', 'filter_woocommerce_germanized_delivery_time_html', 10, 2 );

function filter_woocommerce_germanized_delivery_time_html($str_replace, $html)
{

global $post;

$stock_quantity = get_post_meta($post->ID, '_stock', true);

if ($stock_quantity > 0) {

echo '<p class="wc-gzd-additional-info delivery-time-info">';
echo $str_replace;
echo '</p>';
echo '<p class="wc-gzd-additional-info">';
echo '<a href="https://xyz.at/info/lieferzeiten/" target="_blank"><i class="fas fa-shipping-fast"></i> EU-Lieferzeiten</a>';
echo '</p>';
} else {
return $str_replace;
}

}

如果你能让它工作,请告诉我!

关于php - WooCommerce 如何检查产品是否有货,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69591336/

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