如何在“我的帐户”页面上为特定用户角色添加woocommerce成功通知?

时间:2019-06-20 14:40:07

标签: wordpress woocommerce hook-woocommerce

我想通过钩住woocommerce_account_content为尚未购买商品的新注册“客户”添加折扣通知。尝试通过结合一堆不同的代码自己构建代码。问题是:

1:根本没有显示通知。

2:当我意识到woocommerce没有订户角色时放弃了upp-有没有办法只向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 :(得分:0)

更新

想想我经过很多努力后才开始工作!任何人都应尝试在此处进行更新。

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小时内可见,但此刻我很满意。