From Sexy Leopard, 2 Months ago, written in PHP.
Embed
  1.        // sparwdz czy user kupil produkt z danej kategorii
  2.         public function check_users_by_product_by_same_category() {
  3.  
  4.                 $users_list_order_ctaegory = [];
  5.  
  6.                 $current_user = wp_get_current_user();
  7.  
  8.                         $customer_orders = get_posts( array(
  9.                             'numberposts' => -1,
  10.                             'meta_key'    => '_customer_user',
  11.                             'meta_value'  => $current_user->ID,
  12.                             'post_type'   => wc_get_order_types(),
  13.                             'post_status' => array_keys( wc_get_order_statuses() ),
  14.                         ) );
  15.  
  16.                         // Pobierz id produktow ktore kupil user
  17.                     if ( ! $customer_orders ) return;
  18.                     $product_ids = array();
  19.                     foreach ( $customer_orders as $customer_order ) {
  20.                         $order = new WC_Order( $customer_order->ID );
  21.                         $items = $order->get_items();
  22.                         foreach ( $items as $item ) {
  23.                             $product_id = $item->get_product_id();
  24.                             $product_ids[] = $product_id;
  25.                         }
  26.                     }
  27.                     $product_ids = array_unique( $product_ids );
  28.  
  29.                     // pobieramy kategorie produkt√≥w
  30.  
  31.                     foreach ($product_ids AS $product_id) {
  32.  
  33.                         $category_products = get_the_terms ( $product_id, 'product_cat' );
  34.                                         foreach ( $category_products as $term ) {
  35.                                              $cat_name = $term->term_id;
  36.                                              array_push($users_list_order_ctaegory, $cat_name);
  37.                                         }
  38.  
  39.                     }
  40.  
  41.                         global $post;
  42.                                 $terms = get_the_terms( $post->ID, 'product_cat' );
  43.                                 $nterms = get_the_terms( $post->ID, 'product_tag'  );
  44.                                 foreach ($terms  as $term  ) {
  45.                                     $product_cat_id = $term->term_id;
  46.                                     break;
  47.                                 }
  48.  
  49.                 if ( in_array($product_cat_id, $users_list_order_ctaegory)) {
  50.  
  51.                         $aa = 'tak';
  52.  
  53.                         remove_action('woocommerce_before_single_product', 'add_button');
  54.        
  55.  
  56.                 } else {
  57.                         $aa = 'nie';
  58.                 }
  59.                 echo $aa;
  60.  
  61.        
  62.  
  63.                         file_put_contents('filename.txt', print_r($product_cat_id, true));
  64.  
  65.  
  66.  
  67.         }
  68.