Как пропустить обновление, если поле не пустое в woocomerce? - PullRequest
0 голосов
/ 10 июля 2019

Я использую wp all import для синхронизации своей woocommerce с ebay, в конце я написал эту функцию, чтобы добавить один sku для каждого варианта

function set_value_for_all_vars($id) {
    $prod = wc_get_product( $id );
    if ( get_class( $prod ) == 'WC_Product_Variable' ) {    
        $value = get_post_meta( $id, '_ebay_ean', true );
        $count=0;
        foreach ( $prod->get_available_variations() as $var ) {
            $count++;
            update_post_meta( $var['variation_id'], '_ebay_ean', $value );
            update_post_meta( $var['variation_id'], '_sku', $value . '-' . $var['variation_id'] . '-' . $count );
        }
    }
}

Моя проблема заключается в том, что когда wp-all-import запускает обновление, эта функция меняет sku варианта, но мне нужно, чтобы skus, добавленный при создании варианта, никогда не менялся. Кто-то может предложить изменение?

что я считаю лучшим способом, это элемент управления, который пропускает обновление, если sku для варианта не пуст. Кто-то может предложить что-то изменить?

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

МОЕ решение:

просто проверка, чтобы убедиться, что "sku" пусто! Так что, если пусто, он пишет еще ... выход ... это правильно?

function set_value_for_all_vars($id) {
    $prod = wc_get_product( $id );
    if ( get_class( $prod ) == 'WC_Product_Variable' ) {    
        $value = get_post_meta( $id, '_ebay_ean', true );
        $ebay_price = get_post_meta( $id, '_ebay_start_price', true );
        $count=0;
        foreach ( $prod->get_available_variations() as $var ) {
            $count++;
            update_post_meta( $var['variation_id'], '_ebay_start_price', $ebay_price );
            $post_meta2 = get_post_meta($var['variation_id'], '_sku', true );
            if (empty($post_meta2)) {
            update_post_meta( $var['variation_id'], '_ebay_ean', $value );
            update_post_meta( $var['variation_id'], '_sku', $value . '-' . $var['variation_id'] . '-' . $count );
        }
        }
    }
}
0 голосов
/ 11 июля 2019
function set_value_for_all_vars($id) {
   $prod = wc_get_product( $id );
   if ( get_class( $prod ) == 'WC_Product_Variable' ) {    
     $value = get_post_meta( $id, '_ebay_ean', true );
     $count=0;
     foreach ( $prod->get_available_variations() as $var ) {
        $count++;
        $ebay_product_sku = get_post_meta($var['variation_id'],'_ebay_ean',true);
        if(!$ebay_product_sku)
        {
           update_post_meta( $var['variation_id'], '_ebay_ean', $value );
        }
        $woo_product_sku = get_post_meta($var['variation_id'],'_sku',true);
        if(!$woo_product_sku)
        {
           update_post_meta( $var['variation_id'], '_sku', $value . '-' . $var['variation_id'] . '-' . $count );
        }
       }
     }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...