I have this function, but it is not working as needed. Would it be better to change it to wc_customer_bought_product
?
The goal is to check if the user has bought a free subscription product "11344
" and when this user tries to access a specific page in the user account, it gets redirected to another page.
I have a page where visit statistics are displayed and it is www.website.com/my-account/
. I want to hide that page so that when the user that has bought the mentioned product tries to go there, then gets redirected to another page which is www.website.com/my-account/my-listings/
Can someone suggest what I need to edit in this code? Currently stuck, as this one is not doing anything.
//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 IDS
if ( ! $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;
}