[英]WooCommerce how to check if the product is in stock
我認為有一個非常簡單的解決方案:
在 WooCommerce 中,我想將我的交貨時間過濾器應用於單個產品,但前提是它有available/in stock
。 在檢查產品庫存時出現任何錯誤。
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)
但類似的錯誤如:
“未捕獲的錯誤:在 null 上調用成員函數 is_in_stock() ..”
謝謝您的幫助!
問候, 菲利克斯
該錯誤告訴您您在null
值上使用了您的函數,這意味着它找不到$product
變量。
不確定這個woocommerce_germanized_delivery_time_html
過濾器鈎子來自哪里以及您在哪里使用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;
}
}
讓我知道你是否可以讓它工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.