Как добавить уведомление об успехе woocommerce на странице «Моя учетная запись» для определенной роли пользователя? - PullRequest
0 голосов
/ 20 июня 2019

Я хочу добавить уведомление о скидке для новых зарегистрированных «клиентов», которые еще не сделали покупку, подключившись к woocommerce_account_content.Пробовал сам строить код, комбинируя кучу разных кодов.Неполадки:

1: уведомление вообще не отображалось.

2: Дало упп, когда я понял, что у woocommerce нет роли подписчика - есть ли способ показать ее толькоклиентам с 0 заказами?

Насколько я получил (не работает):

add_action('woocommerce_account_content','new-customer-discount-notice');
    global $user_login, $current_user;

        if (is_user_logged_in()) {
        get_currentuserinfo();
        $user_info = get_userdata($current_user->ID);

            if (in_array('customer', $user_info->roles)) {
                wc_add_notice( 'Congratulations! You have a 10% new customer discount! Valid for 48 hours.', 'success' );
    }
}

Текущий код на данный момент ничего не делает, я немного новичок сphp если честно.В любом случае, это включено, поскольку это может помочь вам увидеть, чего я пытаюсь достичь.(Не смейтесь слишком сильно)

1 Ответ

0 голосов
/ 20 июня 2019

Обновление:

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

function new_customer_discount_notice() {

    // Get all customer orders
    $customer_orders = get_posts( array(
        'numberposts' => -1,
        'meta_key'    => '_customer_user',
        'meta_value'  => get_current_user_id(),
        'post_type'   => wc_get_order_types(),
        'post_status' => array_keys( wc_get_order_statuses() ),
    ) );


    $notice_text = sprintf( 'Congratulations! You have a 10% new customer discount! Valid for 48 hours.' );

    if ( ! count( $customer_orders ) ) {
        wc_print_notice( $notice_text, 'success' );
    }
}
add_action( 'woocommerce_before_my_account', 'new_customer_discount_notice' );

До сих пор не выяснил, как сделать текст видимым только в течение первых 48 часов, но на данный момент я удовлетворен.

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