WooCommerce 产品页面基于产品类别或标签的延期交货消息在 Woo 6.5 后不起作用?

问题描述 投票:0回答:1

有没有可能这个snippet从 Woo 6.5 开始就不再起作用了? 阅读 Woo 文档以找到解决方案。 我有这个,但似乎不再起作用了:

function custom_get_availability_text( $text, $product, $product_cat ) {
    if ( $product->managing_stock() && $product->is_on_backorder( 1 ) && $product->get_stock_quantity() === 0 ) {
        if(has_term( '2 à 5 werkdagen', $product->tags ) ) {
            $text = __( '<p><span style="color: #99cc00;"><strong>Geschatte levertijd: 2 à 5 werkdagen</strong></span></p>' );
        } elseif( has_term( '1 à 2 weken', $product->tags ) ) {
            $text =  __( '<p><span style="color: #99cc00;"><strong>Geschatte levertijd: 1 à 2 weken</strong></span></p>' );
        } elseif(has_term( '2 à 3 weken', $product->tags ) ) {
            $text =  __( '<p><span style="color: #99cc00;"><strong>Geschatte levertijd: 2 à 3 weken</strong></span></p>' );
        } elseif(has_term( 'Abonnementen', $product_cat ) || has_term( 'Abonnementen', $product->tags ) ) {
            $text =  __( '<p><strong>Doorlopende betalingsopdracht</strong></p>' );
        } 
    }
    return $text;
}
add_filter( 'woocommerce_availability_text', 'custom_get_availability_text', 10, 3 );

尝试使用文档中的新信息调整代码。 删除了

$text
参数并使用了
 return _
但没有效果。

wordpress woocommerce product hook-woocommerce code-snippets
1个回答
0
投票

您的代码中存在一些错误和错误。请尝试使用以下重新访问的代码:

add_filter( 'woocommerce_get_availability_text', 'custom_get_availability_text', 10, 2 );
function custom_get_availability_text( $availability, $product ) {
    if ( $product->managing_stock() && $product->is_on_backorder( 1 ) ) {
        $style_tag   = ' style="color: #99cc00;"';
        $html_string = '<p%s><strong>%s</strong></p>';
        
        if (has_term( '2 à 5 werkdagen', 'product_tag' ) ) {
            $availability = sprintf( $html_string, $style_tag, __('Geschatte levertijd: 2 à 5 werkdagen', 'woocommerce') );
        } elseif( has_term( '1 à 2 weken', 'product_tag' ) ) {
            $availability = sprintf( $html_string, $style_tag, __('Geschatte levertijd: 1 à 2 weken', 'woocommerce') );
        } elseif(has_term( '2 à 3 weken', 'product_tag' ) ) {
            $availability = sprintf( $html_string, $style_tag, __('Geschatte levertijd: 2 à 3 weken', 'woocommerce') );
        } elseif(has_term( 'Abonnementen', 'product_cat' ) || has_term( 'Abonnementen', 'product_tag' ) ) {
            $availability =  sprintf( $html_string, '', __('Doorlopende betalingsopdracht', 'woocommerce') );
        }
    }
    return $availability;
}

应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.