为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据运输类别以两种语言显示产品的可用性

如何根据运输类别以两种语言显示产品的可用性

PHP
BIG阳 2021-04-09 14:15:48
我正在尝试通过4种规则以两种语言显示产品的自定义可用性文本。我设置了此功能,但同时获得了可用性文本(来自英语和希腊语)。我想显示每种语言的特定消息。//Availability Text for products add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);function wcs_custom_get_availability( $availability, $_product ) {   global $product;    $defined_shipping_class = "Κατόπιν Παραγγελίας 7-15 ημέρες";    $defined_shipping_class_en = "Available 7-15 days"; $term = get_term_by( 'slug', $product->get_shipping_class(), 'product_shipping_class' ); //Availability for greek language if(ICL_LANGUAGE_CODE=='gr');{     //message if has shipping class     if( is_a($term, 'WP_Term') && $term->name == $defined_shipping_class ){        echo '<p class="product-shipping-class">' . $term->name . '</p>';    }     //message if is low stock    elseif ( $_product->is_in_stock() && $product->get_stock_quantity() >= 1 && $product->get_stock_quantity() <= 10 ) {    echo 'Διαθεσιμότητα: ' . $product->get_stock_quantity() . ' τεμ.';     }     // message if is  out of stock     elseif ( $_product->is_in_stock() && $product->get_stock_quantity() <1  ) {    echo "<p><a href='https://...../επικοινωνια/' style='background-color:#e1e2e2; padding:5px 15px;color:#ed1c24;'>Αναμένεται. Επικοινωνήστε μαζί μας.</a></p>" ;    }     // message if is in stock    elseif( $_product->is_in_stock() && $product->get_stock_quantity() > 11  ) {       echo  'Σε απόθεμα' . $product->get_stock_quantity() . ' τεμ.';     } } //Availability for english languageif(ICL_LANGUAGE_CODE=='en'); {    //message if has shipping class    if( is_a($term, 'WP_Term') && $term->name == $defined_shipping_class_en ){        echo '<p class="product-shipping-class">' . $term->name . '</p>';    }    //message if is low stock    elseif ( $_product->is_in_stock() && $product->get_stock_quantity() >= 1 && $product->get_stock_quantity() <= 10 ) {    echo 'Αvailability: ' . $product->get_stock_quantity() . ' pcs.';     }我想显示每种语言的特定消息。此代码将两种语言的文本一起打印。当我讲elseif英语时,它破坏了网站。我不知道我在做什么错...预先感谢您的帮助!
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

看一下您的if语句:如果用分号结束它们,则下面的块将不再与该语句连接,因此无论条件如何,都将执行该语句。


更清楚地说:以下两个块产生相同的输出:


// First

if(ICL_LANGUAGE_CODE=='en'); {

    echo 'test';

}


// Second

echo 'test';

如果您删除该if行中的分号,则在条件不触发的情况下不显示第一个输出


查看完整回答
反对 回复 2021-04-23
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信