为了账号安全,请及时绑定邮箱和手机立即绑定

检查用户是否购买了商品并重定向到特定页面

检查用户是否购买了商品并重定向到特定页面

PHP
慕后森 2023-07-08 20:54:59
我有这个功能,但它不能按需要工作。改成这样会不会更好wc_customer_bought_product?目标是检查用户是否购买了免费订阅产品“ 11344”,并且当该用户尝试访问用户帐户中的特定页面时,它会被重定向到另一个页面。我有一个显示访问统计信息的页面,它是www.website.com/my-account/。我想隐藏该页面,以便当购买了上述产品的用户尝试去那里时,然后被重定向到另一个页面www.website.com/my-account/my-listings/有人可以建议我需要在这段代码中编辑什么吗?目前陷入困境,因为这个没有做任何事情。//You can make this code as function and call it where it is require$current_user = wp_get_current_user();if ( 0 == $current_user->ID ) return;// GET USER ORDERS (COMPLETED + PROCESSING)$customer_orders = get_posts( array(    'numberposts' => -1,    'meta_key'    => '_customer_user',    'meta_value'  => $current_user->ID,    'post_type'   => wc_get_order_types(),    'post_status' => array_keys( wc_get_is_paid_statuses() ),) );// LOOP THROUGH ORDERS AND GET PRODUCT IDSif ( ! $customer_orders ) return;$product_ids = array();foreach ( $customer_orders as $customer_order ) {    $order = wc_get_order( $customer_order->ID );    $items = $order->get_items();    foreach ( $items as $item ) {        $product_id = $item->get_product_id();        $product_ids[] = $product_id;    }}$product_ids = array_unique( $product_ids );if (in_array("11344", $product_ids)){    wp_redirect("https://website.com/account2"); // Add redirect URL Here     exit;} 
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

  • template_redirect- 在确定要加载的模板之前触发。

  • wp_get_current_user- 检索当前用户对象。

  • wc_customer_bought_product- 检查用户(通过电子邮件或 ID 或两者)是否购买了商品。

function action_template_redirect() {

    global $wp;

    

    // Retrieve the current user object.

    $current_user = wp_get_current_user();

    if ( $current_user->ID == 0 ) return;

    

    // DEBUG PURPOSES, UNCOMMENT IF NECESSARY

    //echo $wp->request;


    // On my-account page

    if( $wp->request == 'my-account' ) {

        // Set product ID

        $product_id = 11344;

        

        // If true

        if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product_id ) ) {

            // Redirect

            wp_safe_redirect('/my-account/my-listings/');

            exit;

        }   

    }

}

add_action( 'template_redirect', 'action_template_redirect' );


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信