1

我正在使用此处的代码:有条件地更改 Woocommerce中的特定产品价格以将特定产品的价格提高 10 美元,但在特定类别的产品页面上以及购物车包含该类别的任何内容时除外。

但是现在我有不止一种产品需要提高价格。我尝试更改第 7 行:

if( $product->get_id() != 87 ) return $price_html;

类似于

if( $product->get_id() != 87 || $product->get_id() != 2799 ) return $price_html;

以产品 87 或 2799 为目标,但它只是破坏了代码,甚至产品 87 也不再显示为 10 美元以上。我已经尝试过|| 的变体 和或但我所做的没有任何工作。

非常感谢帮助:)

4

2 回答 2

2

对于多个产品 ID,而不是使用类似的东西:

add_filter( 'some_hook', 'some_function' );
function some_function( $price_html, $product ){
    if( $product->get_id() != 87 || $product->get_id() != 2799 ) return $price_html;

    // The function code 

    return $price_html; // at the end
}

您将使用类似的东西:

add_filter( 'some_hook', 'some_function' );
function some_function( $price_html, $product ){
    if( in_array( $product->get_id(), array( 87, 2799 ) ) ){

        // The function code 

    }

    return $price_html; // at the end
}

它适用于多种产品

于 2018-09-13T12:37:02.973 回答
0

您的if条件没有意义,因为它总是会返回 true。尝试用and替换or

if( $product->get_id() != 87 && $product->get_id() != 2799 ) return $price_html;
于 2018-09-13T06:42:03.040 回答