woocommerce wc_rbp_product_selling_price в пользовательском теге данных - PullRequest
2 голосов
/ 08 января 2020

На сайте, который я разрабатываю в 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;
}

Что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...