Показывать текст только для определенного значения настраиваемого поля на страницах одного продукта Woocommerce - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь отобразить пользовательский текст ', видимый только для зарегистрированных пользователей на страницах одного продукта, но только когда $wpdb->postmeta, metafield 'show' имеет значение 'yes', от текущего 'post_id'.

Я не могу найти правильный запрос SQL для реализации текущего продукта post_id при загрузке одной страницы продукта.

Вот мой код:

function show_text() {
    global $wpdb;   
    $post_id_number = get_the_id();

    $meta = $wpdb->get_results( "select * from $wpdb->wp_postmeta WHERE meta_key = 'show' AND meta_value = 'yes'" );

    if ( $meta == TRUE ) {
        echo '<p>PRice is only visible for logged in users</p>';
    }
}
add_action( 'woocommerce_before_single_product', 'show_text' );

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете просто использовать функцию Wordpress get_post_meta() следующим образом:

add_action( 'woocommerce_before_single_product', 'show_custom_text' );
function show_custom_text() {
    global $post;

    if ( get_post_meta( $post->ID, 'show', true ) == 'yes' && ! is_user_logged_in() ) {
        echo '<p>PRice is only visible for logged in users</p>';
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Это должно работать.

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