vendredi 5 juin 2020

if customer buy some specific products then i want to put other condition into it

if user buy my woocommerce products (id= 1900,1902,1938) . then i want to put some other condition into it .. can anyone help me with that please . i have tried this Check if a customer has purchased a specific products in WooCommerce

but it is not worked for me . this work for just one product . not many product . my code is:

function has_bought_items() {
$bought = false;

// Set HERE ine the array your specific target product IDs
$prod_arr = array( '1900','1902','1938');

// Get all customer orders
$customer_orders = get_posts( array(
    'numberposts' => -1,
    'meta_key'    => '_customer_user',
    'meta_value'  => get_current_user_id(),
    'post_type'   => 'shop_order', // WC orders post type
    'post_status' => 'wc-completed' // Only orders with status "completed"
) );
foreach ( $customer_orders as $customer_order ) {
    // Updated compatibility with WooCommerce 3+
    $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
    $order = wc_get_order( $customer_order );

    // Iterating through each current customer products bought in the order
    foreach ($order->get_items() as $item) {
        // WC 3+ compatibility
        if ( version_compare( WC_VERSION, '3.0', '<' ) ) 
            $product_id = $item['product_id'];
        else
            $product_id = $item->get_product_id();

        // Your condition related to your 2 specific products Ids
        if ( in_array( $product_id, $prod_arr ) ) 
            $bought = true;
    }
}
// return "true" if one the specifics products have been bought before by customer
return $bought;

}

then my condition was here

if ( has_bought_items() ) { 

 //my condtion
 }else { 

  //no condition
  }

Aucun commentaire:

Enregistrer un commentaire