2016-07-24 4 views
3

Я пытаюсь изменить цену продукта с помощью крюков и успешно удалось сделать это для регулярного продукта с помощью:WooCommerce крюк для цены вариационной

function filter_woocommerce_get_price() { 
    return 55; 
}; 
add_filter('woocommerce_get_price', 'filter_woocommerce_get_price', 10, 3); 

Я заметил, что этот крючок не применяется для варьирования продуктов, так Я нашел эквивалент:

function filter_woocommerce_get_variation_price() { 
    return 66; 
}; 
add_filter('woocommerce_get_variation_price_html', 'filter_woocommerce_get_variation_price', 10, 3); 

Но он просто не будет работать ... Я также попытался это:

add_filter('woocommerce_variation_sale_price_html', 'my_html', 10, 2); 
add_filter('woocommerce_variation_price_html', 'my_html', 10, 2); 
function my_html($price, $variation) { 
    return woocommerce_price(5); 
} 

И аналогичные решения, которые я нашел в Интернете, но ничто не изменило мою вариационную цену продукта.

Что я делаю неправильно? Может кто-нибудь, пожалуйста, помогите мне с этим, становясь довольно отчаянным здесь?

+0

Я попробую немного позже, чтобы найти что-то удобное и проверенное, так как сейчас я немного занят. Цены на различные товары и цены на изменение действительно намного сложнее, чем все другие типы продуктов ... [** helgatheviking **] (http://stackoverflow.com/users/383847/helgatheviking) пользователь является экспертом здесь, в SO, относительно этого вид проблем. – LoicTheAztec

+0

Спасибо, что посмотрели на это. То, что я делаю с обычными ценами, это переключать их с помощью настраиваемого значения поля, если зарегистрирована определенная роль пользователя. То же самое мне нужно для изменения цены продукта. Я знаю, что варианты могут иметь диапазон цен, поэтому трудно сделать то же самое, но в моем случае, если продукт поставляется в разных цветах, цена останется неизменной, поэтому все нужно, чтобы вытащить то же самое значение настраиваемого поля вместо изменение цена. это ссылка на Dev сайте: http://bajko.webdotagency.com/ но это в сербском ... еще раз спасибо –

+0

Спасибо за то важные детали * (Нет сомнений в том, что Topalovic был Сербская :) ...) * - Если вы не знаете (и хотите его), вы можете удалить некоторые старые не полезные комментарии, щелкнув по маленькому серому значку креста при их зависании ... – LoicTheAztec

ответ

0

Ваша проблема заключается в том, что вы не определяя необходимые аргументы для функции, число добавить в конце add_filters означает, что вы передаете 3 аргумента, так что вы должны сделать это следующим образом:

function filter_woocommerce_get_variation_price($price, $product) { 
    return 66; 
}; 
add_filter('woocommerce_get_variation_price', 'filter_woocommerce_get_variation_price', 10, 2); 

Таким образом, функцию можно назвать.

+0

Привет, благодарю за ответ, но вы отправили крючок для woocommerce_get_price, мне удалось работать с аргументами и без них. У меня проблемы с woocommerce_get_variation_price. Я тоже пытался добавить аргумент к этому ключу, но все равно не повезло. –

+0

Привет, я обновил ответ на использование 'woocommerce_get_variation_price', если он работает, выберите в качестве ответа, вам нужно изменить вызов add_filter – Skatox

Смежные вопросы