На сайте, который я разрабатываю в WooCommerce, мне нужно было создать 6 прайс-листов с фиксированными ценами для каждого продукта и применить глобальную скидку в процентах для прайс-листа, назначенного клиенту.
Для 6 прайс-листов я справился с этим через плагин «Ролевая цена для WooCommerce»
Для скидки на клиентскую часть я создал небольшой плагин. Здесь код
function get_price_divider() {
$user_id = get_current_user_id();
$perc = get_user_meta( $user_id, 'sconto_cliente', true );
$sconto = ((int)$perc);
return $sconto;
}
add_filter('wc_rbp_product_selling_price', 'custom_price', 99, 2 );
function custom_price( $price, $product ) {
return ((int)$price)-((((int)$price)/100)*get_price_divider());
}
Все отлично работает на странице товара. Он правильно обрабатывает крючок «wc_rbp_product_selling_price».
Однако мне нужно передать эту цену другому плагину, с помощью которого я сделал «инструмент поиска» для продаваемых продуктов. Авторы плагина (LSCF) дают мне возможность создать новый тег данных, как указано здесь: https://pixolette.com/docs/lscf/custom-template/create-new-data-tag/
Так что я должен отобразить в их html шаблон с этим кодом
<div class="customdata">
Prezzo: {{post.custom_price}}
</div>
Я создал код ниже, чтобы сделать это, но вывод всегда 0
add_action( 'lscf_custom_tags', 'lscf_custom_tags_function' );
function lscf_custom_tags_function( &$args ) {
global $price, $product;
$post_id = (int) $args['ID'];
$output = apply_filters( 'wc_rbp_product_selling_price', $price, $product );
$args['custom_price'] = $output;
}
Что не так?