Замените цену продукта WooCommerce текстом для незарегистрированных пользователей и тегом конкретного продукта. - PullRequest
2 голосов
/ 17 марта 2019

В WooCommerce я использую следующий код:

<?php
    global $product;
    $terms = get_the_terms( $product->get_id(), 'product_tag' );
    for ($i = 0; $i < count($terms); $i++) {
    $tags[] = $terms[$i]->slug;
    }
    ?>
<?php if ( $price_html = $product->get_price_html() ) : ?>
    <?php if (is_user_logged_in() && in_array('HIDDEN TAG', $tags)): ?>
        <span class="price">Please Log-in</span>
    <?php else: ?>
        <span class="price"><?php echo $price_html; ?></span>
    <?php endif; ?>
<?php endif; ?>

На товарах этот код должен заменить цену на «Пожалуйста, войдите в систему» ​​, если покупатель не вошел в систему с товарным знаком «HIDDEN TAG».

Я не понимаю, почему это не работает. Любая помощь приветствуется.

1 Ответ

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

Ваше состояние должно быть ! is_user_logged_in(). Я сократил и повторно посетил ваш код:

<?php global $product;

// To be sure that we get the product Object (if needed)
if( ! is_a($product, 'WC_Product') )
    $product = wc_get_product( get_the_id() );

if ( $price_html = $product->get_price_html() ) { 
    // Get the term ID from 'HIDDEN TAG' product tag
    $term_id = get_term_by( 'name', 'HIDDEN TAG', 'product_tag' )->term_id;
    // added "!" to is_user_logged_in() for unlogged users and made some other changes
    if ( ! is_user_logged_in() && in_array( $term_id, $product->get_tag_ids() ) ) { 
        echo '<span class="price">'.__("Please Log-in").'</span>';
    } else {
        echo '<span class="price">'.$price_html.'</span>';
    } 
} ?>

Теперь должно работать.

Код может быть еще короче , если вы можете непосредственно установить в коде правильный идентификатор термина для 'HIDDEN TAG' (вместо имени термина) , как, например, (если 57 - это термин Id) in:

in_array( 57, $product->get_tag_ids() )

Удаление ненужного:

// Get the term ID from 'HIDDEN TAG' product tag
$term_id = get_term_by( 'name', 'HIDDEN TAG', 'product_tag' )->term_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...