Установите суффикс отображения цены для роли пользователя - PullRequest
1 голос
/ 04 марта 2020

Я хотел бы иметь другой суффикс цены для двух разных ролей пользователей на моем сайте Woo C.

Обычный клиент не будет иметь суффикса и цены, включая налог, который я установил на вкладке "Настройки налога" для Woo.

Торговый клиент имеет цену без налога, и я хочу дать ему суффикс "без НДС ({price_inclusive_tax} в c НДС)".

Альтернатива, которую я мог бы сделать, - установить настройки Woo с этим суффиксом и вместо этого попытаться скрыть суффикс от обычного пользователя и других ролей пользователя. Однако я бы предпочел добавить его и попробовал приведенный ниже код, который я нашел и изменил, но он не работает.

Кто-нибудь может подсказать, что с ним не так?

add_filter( 'custom_price_suffix', 100, 2 ); 
function custom_price_suffix($price, $current_user_role) { 
$your_suffix = 'ex VAT ({price_including_tax} inc VAT)'; 
if($current_user_role == 'default_wholesaler') { 
$price .= '$your_suffix '; } 

return apply_filters( 'custom_price_suffix', $your_suffix ); 

} 

Благодаря предложению ниже. В настоящее время у меня есть следующий код:

function custom_price_suffix( $price, $product ) {
    $your_suffix = 'ex VAT ({price_including_tax} inc VAT)';

    // check current user role
    $user = wp_get_current_user();
    $roles = ( array ) $user->roles;

    if ( in_array( 'administrator', $roles ) ) {
        $price = $your_suffix;
    } elseif ( in_array( 'default_wholesaler', $roles ) ) {
        $price = 'ex VAT ({price_including_tax} inc VAT)';
    }

    // return $price;
    return apply_filters( 'woocommerce_get_price', $price );
}
add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 100, 2 );

Результатом этого кода является суффикс теперь появляется только один раз. Однако он убрал показ цены и не распознает шорткод {price_include_tax}.

Как отображается для пользователя по умолчанию для оптовых покупателей на переднем конце

1 Ответ

1 голос
/ 04 марта 2020

вы можете использовать следующее wp_get_current_user()

https://developer.wordpress.org/reference/functions/wp_get_current_user/

function custom_price_suffix( $price, $product ) {
    // for debug purposes, delete after testing
    echo '1 = ' . $price;

    $your_suffix = 'suffix here';

    // check current user role
    $user = wp_get_current_user();
    $roles = ( array ) $user->roles;

    // for debug purposes, delete after testing
    echo '2 = ' , print_r($roles, 1), '
'; if (in_array ('administrator', $ role)) {$ price = $ price. '-'. $ Your_suffix; } elseif (in_array ('user ...', $ role)) {$ price = 'кое-что'; } // return $ price; return apply_filters ('woocommerce_get_price', $ price); } add_filter ('woocommerce_get_price_ html', 'custom_price_suffix', 100, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...