根据 WooCommerce 中的属性值显示不同的文本

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

我有一个全局产品属性“警告”。它有两个值。现在我需要根据产品是否具有属性值 1 或值 2 显示不同的文本(如果它根本没有该属性,则不应显示任何内容。我可以用此显示文本

add_action( 'woocommerce_single_product_summary', 'product_warning', 35 );
function product_warning(){
    global $product;
    $taxonomy = 'pa_warning';
    $value = $product->get_attribute( $taxonomy );
    if ( $value ) {
        $label = get_taxonomy( $taxonomy )->labels->singular_name;
        echo '<p>My Text</p>';
    }
}

但是如果属性值 1 为真,如何显示文本 1,如果属性值 2 为真,如何显示文本 2?

php wordpress woocommerce product taxonomy-terms
2个回答
2
投票

相反,您将为

pa_warning
使用 2 个术语(值),例如
1
2
,为每个相关产品设置正确的术语值。那么你的代码将是:

add_action( 'woocommerce_single_product_summary', 'product_warning', 35 );
function product_warning(){
    global $product;

    $taxonomy = 'pa_warning';

    $label_name = wc_attribute_label( $taxonomy );
    $term_value = $product->get_attribute( $taxonomy );

    if ( $term_value == 1 ) {
        echo '<p>' ; __("My text message 1", "woocommerce") . '</p>';
    } elseif ( $term_value == 2 ) {
        echo '<p>' ; __("My text message 2", "woocommerce") . '</p>';
    }
}

代码位于活动子主题(或活动主题)的 function.php 文件中。应该有效。


0
投票

数组或类似的东西似乎是最简单(也可能是最快)的方法。我相信 PHP 仍然会将数组中的 null 键值转换为空字符串,因此声明这一点是不必要的。

$warning = array(
 1 => "Warning number 1",
 2 => "Warning number 2",
);
echo $warning($term_value);
© www.soinside.com 2019 - 2024. All rights reserved.