我想通过钩住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有点陌生。无论如何都包含它,因为它可能会帮助您了解我要完成的工作。 (别笑得太厉害)
答案 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小时内可见,但此刻我很满意。