wordpress 更改backorder文本WooCommerce

qxsslcnc  于 2023-05-16  发布在  WordPress
关注(0)|答案(2)|浏览(139)

我正在使用下面的代码来更改产品有货和缺货时的文本,这非常好用。但我不能让它改变backorder文本无论我如何调整代码,它似乎是写在现有的代码。
我如何调整这个片段,也能够调整backordertetx说:“5天交货,backordered”

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {
    
    // Change text if in stock
    if ( $_product->is_in_stock() ) {
        $availability['availability'] = __('<div class="breadcrumbsstockstatus">På lager</div><div class="breadcrumbsstockinfo">Levering 1-2 hverdage</div>', 'woocommerce');
    }
    // Change text if out of stock
    if ( ! $_product->is_in_stock() ) {
        $availability['availability'] = __('Ikke på lager - kommer igen', 'woocommerce');
    }
    return $availability;
}
piv4azn7

piv4azn71#

向代码中添加条件可以允许您修改延期交货文本。例如,如果你想从$_product对象中使用is_on_backorder()方法,你可以这样定制现有的代码:

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {
    
    if ( $_product->is_in_stock() ) {
        $availability['availability'] = __('<div class="breadcrumbsstockstatus">På lager</div><div class="breadcrumbsstockinfo">Levering 1-2 hverdage</div>', 'woocommerce');
    }
    elseif ( ! $_product->is_in_stock() && ! $_product->is_on_backorder() ) {
        $availability['availability'] = __('Ikke på lager - kommer igen', 'woocommerce');
    }
    elseif ( $_product->is_on_backorder() ) {
        $availability['availability'] = __('<div class="breadcrumbsstockstatus">På lager</div><div class="breadcrumbsstockinfo">5 dages leveringstid, backordered</div>', 'woocommerce');
    }
    return $availability;
}

如果结果是您关注的产品正在缺货,则会显示以下消息:“5 dages leveringstid,backorded”-这是标准backorder文本的替代。重要的是要注意,elseif语句应该在验证产品是否有库存之后检查is_on_backorder(),以确保更改仅适用于实际上已延期订购的项目。

ubby3x7f

ubby3x7f2#

尝试先降低优先级,因为其他插件可能会覆盖您的文本。尝试使用<span>而不是<div>

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 10, 2);

试试这个plugin:https://wordpress.org/plugins/say-what/
Ps:把这段代码放在你函数的第一行:if( is_admin() ) {return $availability; }
如果你想翻译这一行:

$availability['availability'] = __('<div class="breadcrumbsstockstatus">På lager</div><div class="breadcrumbsstockinfo">Levering 1-2 hverdage</div>', 'woocommerce');

改为

$availability['availability'] = '<div class="breadcrumbsstockstatus">' . __('På lager', 'woocommerce') . '</div><div class="breadcrumbsstockinfo">' . __('Levering 1-2 hverdage', 'woocommerce') . '</div>';

因为我认为你不想只翻译文本的HTML代码。

相关问题