Второй параметр подключенной функции Woocommerce возвращает NULL вместо Object - PullRequest
3 голосов
/ 11 марта 2019

В документации Woocommerce хук фильтра woocommerce_get_price_html, расположенный в методе get_price_html(), должен принимать обратный вызов, который принимает до двух параметров , цены и продукта.

Но когда я пытаюсь получить доступ к продукту, я получаю NULL вместо объекта WC_Product.

Вот мой код тестирования:

add_filter( 'woocommerce_get_price_html', function( $price, $item ) {
    echo var_dump ($item); // NULL
    return $price;
});

Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Вам нужно объявить 2 параметра, которые вы используете для этой ловушки, в своей подключаемой функции сразу после приоритета ловушки, таким образом:

add_filter( 'woocommerce_get_price_html', function( $price, $product ) {
    echo var_dump ($product); // The WC_Product object instance
    return $price;
}, 10, 2 );

И лучше назвать вашу функцию, например:

add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 ); 
function filter_woocommerce_get_price_html( $price, $product ) {
    echo var_dump ($product); // The WC_Product object instance
    return $price;
}

На этот раз вы сможете получить переменную $product object…

См. Документацию по add_action () и add_filter () Функции WordPress.

0 голосов
/ 11 марта 2019

enter image description here

Есть 3 места, где этот фильтр подключен. Три из них имеют два параметра.

Попробуйте, если хотя бы

add_filter( 'woocommerce_get_price_html', 'alter_price', 10, 2 );

function alter_price( $price, $item ) {
    echo var_dump ($item); 
    return $price;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...