Всем привет,
Поделитесь пожалуйста опытом,
Нужно в WooCommerce, wp4.3 загрузить продукты с категориями из внешних таблиц
Я погуглил и нашел такую ссылку http://wordpress.stackexchange.com/questions/137501/how-to-add-product-in-woocommerce-with-php-code
с примером кода
$post = array(
'post_author' => $user_id,
'post_content' => '',
'post_status' => "publish",
'post_title' => $product->part_num,
'post_parent' => '',
'post_type' => "product",
);
//Create post
$post_id = wp_insert_post( $post, $wp_error );
if($post_id){
$attach_id = get_post_meta($product->parent_id, "_thumbnail_id", true);
add_post_meta($post_id, '_thumbnail_id', $attach_id);
}
wp_set_object_terms( $post_id, 'Races', 'product_cat' );
wp_set_object_terms($post_id, 'simple', 'product_type');
update_post_meta( $post_id, '_visibility', 'visible' );
update_post_meta( $post_id, '_stock_status', 'instock');
update_post_meta( $post_id, 'total_sales', '0');
update_post_meta( $post_id, '_downloadable', 'yes');
update_post_meta( $post_id, '_virtual', 'yes');
update_post_meta( $post_id, '_regular_price', "1" );
update_post_meta( $post_id, '_sale_price', "1" );
update_post_meta( $post_id, '_purchase_note', "" );
update_post_meta( $post_id, '_featured', "no" );
update_post_meta( $post_id, '_weight', "" );
update_post_meta( $post_id, '_length', "" );
update_post_meta( $post_id, '_width', "" );
update_post_meta( $post_id, '_height', "" );
update_post_meta($post_id, '_sku', "");
update_post_meta( $post_id, '_product_attributes', array());
update_post_meta( $post_id, '_sale_price_dates_from', "" );
update_post_meta( $post_id, '_sale_price_dates_to', "" );
update_post_meta( $post_id, '_price', "1" );
update_post_meta( $post_id, '_sold_individually', "" );
update_post_meta( $post_id, '_manage_stock', "no" );
update_post_meta( $post_id, '_backorders', "no" );
update_post_meta( $post_id, '_stock', "" );
// file paths will be stored in an array keyed off md5(file path)
$downdloadArray =array('name'=>"Test", 'file' => $uploadDIR['baseurl']."/video/".$video);
$file_path =md5($uploadDIR['baseurl']."/video/".$video);
$_file_paths[ $file_path ] = $downdloadArray;
// grant permission to any newly added files on any existing orders for this product
//do_action( 'woocommerce_process_product_file_download_paths', $post_id, 0, $downdloadArray );
update_post_meta( $post_id, '_downloadable_files ', $_file_paths);
update_post_meta( $post_id, '_download_limit', '');
update_post_meta( $post_id, '_download_expiry', '');
update_post_meta( $post_id, '_download_type', '');
update_post_meta( $post_id, '_product_image_gallery', '');
Но гугл также выдал ссылку на http://woocommerce.wp-a2z.org/oik_api/wc_api_productscreate_product/
и
WC_API_Products::create_product() – Create a new product
также есть ссылки на REST API
Что предпочтительнее/надежнее?
Есть опыт программирования в wp(в том числе програмного добавления категорий и постов при помощи wp_insert_category и wp_insert_post ) – с WooCommerce не работал
И несколько слов о синхронизации как я ее вижу сейчас:
1) есть 2 внешние таблицы categories , products
2) К этим таблицама кроме их полей добавляю еще 2 поля status( возможные значения "unmodified", "new", "modified", "deleted"), wp_id – ссылка на строку в wp
3) синхронизацию нужно делать из wp, средствами wp о чем я выше спрашивал в кроне или по кнопке
4) Проверяя из wp-процедуры значение status – выполнять соответствующую операцию в wp присвоить status = "unmodified"
5) видимо нужно будет создать таблицу rows_deleted – где и хранить коды удаленных сатегорий и постов – так меньше будет переделок во внешней программе
что я упустил – и возможно в wp есть удобные средства для этого ?
Спасибо!