2016-03-18 3 views
0

У меня есть функция, ниже которой работает, чтобы изменить роль пользователя при покупке определенных продуктов, но вместо того, чтобы перечислять конкретные идентификаторы продуктов, d хотел бы просто использовать название категории или идентификатор этих продуктов. Таким образом, если мы добавим новый продукт в эту категорию, мне не нужно будет добавлять его в эту функцию. Эта функция относится к определенной категории, поэтому не имеет значения, имеют ли люди другие продукты из других категорий в заказе.Как получить имя или идентификатор продукта в заказе woocommerce

function lgbk_add_member($order_id) { 
    $order = new WC_Order($order_id); 
    $items = $order->get_items(); 

    foreach ($items as $item) { 
     $product_name = $item['name']; 
     $product_id = $item['product_id']; 
     $product_variation_id = $item['variation_id']; 

     if ($order->user_id > 0 && $product_id == '7') { 
      update_user_meta($order->user_id, 'paying_customer', 1); 
      $user = new WP_User($order->user_id); 

      // Remove role 
      $user->remove_role('expired'); 

      // Add role 
      $user->add_role('customer'); 
      } 
     } 
    } 

    add_action('woocommerce_order_status_completed', 'lgbk_add_member'); 

ответ

2

Вы должны использовать wp_get_post_terms, чтобы получить идентификатор категории любого продукта, как это:

$term_list = wp_get_post_terms($product_id, 'product_cat', array('fields' => 'ids')); 

Я просто выборку идентификаторов категорий, присвоенных этот конкретный продукт, вы можете получить имя также.

+0

Спасибо вам большое ... работал как шарм –

Смежные вопросы