wordpress
  • woocommerce
  • 2015-06-07 2 views 2 likes 
    2

    Я работаю на веб-сайт, который генерирует купон, когда кто-то зарегистрировать у меня есть код - этоWooCommerce купон - получить все перечисленные продукты Идентификаторы

    $coupon_code = "ex".$resulted_coupon_code ;// Code 
    
    $amount = '20'; // Amount 
    $discount_type = 'percent_product'; // Type: fixed_cart, percent,  fixed_product, percent_product 
    
    $coupon = array(
    'post_title' => $coupon_code, 
    'post_content' => '', 
    'post_status' => 'publish', 
    'post_author' => 1, 
    'post_type' => 'shop_coupon' 
    ); 
    
    $new_coupon_id = wp_insert_post($coupon); 
    
    // Add meta 
    update_post_meta($new_coupon_id, 'discount_type', $discount_type); 
    update_post_meta($new_coupon_id, 'coupon_amount', $amount); 
    update_po st_meta($new_coupon_id, 'individual_use', 'yes'); 
    update_post_meta($new_coupon_id, 'product_ids', '4454,4452,4451,4449'); 
    update_post_meta($new_coupon_id, 'exclude_product_ids', ''); 
    update_post_meta($new_coupon_id, 'usage_limit', '1'); 
    update_post_meta($new_coupon_id, 'usage_limit_per_user', '1'); 
    update_post_meta($new_coupon_id, 'expiry_date', ''); 
    update_post_meta($new_coupon_id, 'apply_before_tax', 'yes'); 
    update_post_meta($new_coupon_id, 'free_shipping', 'no'); 
    update_post_meta($new_coupon_id, 'customer_email', $user_email); 
    

    теперь, как я могу получить купон продукты иды ?? like from this

    update_post_meta ($ new_coupon_id, 'product_ids', '4454,4452,4451,4449');

    я хочу, чтобы получить эти 4454,4452,4451,4449

    +0

    Я работаю дальше, чтобы получить это, как этот $ полей = get_post_meta ($ post-> ID, $ ID); \t \t foreach ($ fields as $ field) { \t \t return $ field; \t} будет обновлен здесь, если он работает – DevelopmentBucket

    +0

    Что такое '$ id'? Это должна быть «meta_key», и вы не сможете зацикливать результаты, если это не массив (это не так). – doublesharp

    ответ

    2

    WooCommerce хранит эти значения в postmeta таблице, так что вы можете использовать get_post_meta() для получения идентификаторов продукта.

    get_post_meta($new_coupon_id, 'product_ids', true); 
    

    Чтобы получить все типы купона пост первого, затем цикл над ними, чтобы получить продукты, то цикл над ними, чтобы получить типы продукта пост, можно использовать следующее:

    // get all coupons that are published 
    $coupons = get_posts(array(
        'posts_per_page' => -1, 
        'post_type'  => 'shop_coupon', 
        'post_status'  => 'publish', 
    )); 
    
    // loop through the coupons 
    foreach ($coupons as $coupon){ 
        // get the product ids meta value 
        $product_ids = get_post_meta($coupon->ID, 'product_ids', true); 
        // make sure something has been saved 
        if (!empty($product_ids){ 
         // convert from comma separated string to array 
         $id_list = explode(',', $product_ids); 
         // loop over each ID 
         foreach($id_list as $product_id){ 
          // get the product for each ID 
          $product = get_post($product_id); 
          // each product associated 
         } 
        } 
    } 
    
    +0

    champ working :) – DevelopmentBucket

    1
    update_post_meta($new_coupon_id, 'product_ids', get_post_meta(4461, 'product_ids', true)); 
    

    пытаются использовать этот код

    +0

    yes working Спасибо за полный код это была жизнь save :) – DevelopmentBucket

    +0

    Как это справедливо? Откуда появился идентификатор «4461»? Обновление не возвращает идентификаторы, оно только устанавливает их. – doublesharp

    +0

    на самом деле его другой главный купон, который уже построен в woocommerce – DevelopmentBucket

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