skip to Main Content

how can we make this function below to check multiple product ids instead of just one id, how can we convert it to array ?

add_action( 'woocommerce_before_cart', 'bbloomer_find_product_in_cart' );
    
function bbloomer_find_product_in_cart() {
  
   $product_id = 17285;
  
   $product_cart_id = WC()->cart->generate_cart_id( $product_id );
   $in_cart = WC()->cart->find_product_in_cart( $product_cart_id );
  
   if ( $in_cart ) {
  
      $notice = 'DON't Forget to Apply the discount coupon code you received to complete purchasing with the discounted price';
      wc_print_notice( $notice, 'notice' );
  
   }
  
}

We tried $product_ids = array("17285", "17302"); // but it doesn’t work

we also tried this but not working too

add_filter( 'woocommerce_before_cart', 'ts_woocommerce_quantity_selected_numbe', 10, 2 );
function ts_woocommerce_quantity_selected_numbe( $product ) {
    $product_ids = array("15757", "15758"); // Here the array of product Ids

    if ( in_array( $product->get_id(), $product_ids ) ) {
        // In cart
        if ( ! is_cart() ) {
            $notice = 'DON't Forget to Apply the discount coupon code you received to complete purchasing with the discounted price';
      wc_print_notice( $notice, 'notice' );
        } 
    }
}

2

Answers


  1. For product id array which are in cart use this code,

    $array_product_ids = array();
    
    foreach( WC()->cart->get_cart() as $cart_item ){
        $product_id = $cart_item['product_id'];
        $array_product_ids =   $product_id
    }
    print_r($array_product_ids);    // here you find all product id which are in the cart. 
    
    Login or Signup to reply.
  2. To check cart items for one or multiple product Ids, displaying a notice, use instead:

    add_action( 'woocommerce_before_cart', 'found_product_in_cart_display_message' );
    function found_product_in_cart_display_message() {
        $product_ids = array(17285, 17302); // Array or product ids
    
        // Loop through cart items
        foreach ( WC()->cart->get_cart() as $item ) {
            if ( array_intersect( $product_ids, array($item['product_id'], $item['variation_id']) ) ) {
                // Display a notice
                wc_print_notice( __("Don't forget to apply the discount coupon code you received to complete purchasing with the discounted price."), 'notice' );
                break; // Stop the loop
            }
        }
    }
    

    Code goes in functions.php file of the active child theme (or active theme). Tested and works.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search