Woocommerce में php कोड के साथ उत्पाद कैसे जोड़ें [बंद]


29

मैं नीचे दिए गए PHP कोड के साथ उत्पादों को जोड़ना चाहता हूं:

$post_information = array(
  'post_title' => 'new item shop',
  'post_content' => 'this is new item shop',
  'post_type' => 'post',
  'post_status' => 'publish'
);
$post_id = wp_insert_post($post_information);

लेकिन यह कोड WooCommerce जैसे पोस्ट प्रकार और गाइड और मेटाडेटा के लिए ऑप्टिमाइज़ करता है और ... क्या कोई मदद कर सकता है?


1
PHP के माध्यम से उत्पादों को जोड़ना काफी काम होगा क्योंकि इसमें बहुत सी अलग-अलग चीजें सम्मिलित / अपडेट होती हैं। हो सकता है कि यह उत्तर और संबंधित प्लगइन्स आपको काम को आसानी से पूरा करने में मदद करेंगे :)
स्वेन

1
2017 में, stackoverflow.com/a/40133117/5749914 में सुझाए गए REST API का उपयोग करें ।
वार्न चिम्पांजी

जवाबों:


49

यह बहुत आसान है कि आपने पोस्ट मेटा में जोड़े गए डेटा को काम कर लिया है। मुसीबत मैं स्टोर में डाउनलोड करने योग्य उत्पादों को जोड़ रहा हूं।

नीचे कोड है जो मैं इसका उपयोग कर रहा हूं वह सभी पोस्ट मेटा को सूचीबद्ध करता है जो वू वाणिज्य द्वारा उपयोग किया जाता है। यह एक उत्पाद प्रकाशित करता है, हालांकि डाउनलोड लिंक संलग्न नहीं होगा।

मूल रूप से जब मैंने शुरू किया था तो मैंने उस सरणी के साथ एक त्रुटि की थी जो डाउनलोड लिंक को खराब लिंक "बी" के उत्पादन में संग्रहीत करता है और उसके बाद एक दूसरी डाउनलोड फ़ाइल जो सही थी। किसी उत्पाद के मैन्युअल रूप से जोड़े जाने के लिए सरणी को ठीक करने के बाद इसे जोड़ा नहीं जाता है कि कोई अकेला फ़ाइल नहीं दिखाएगा। अगर किसी को इस पर जानकारी है तो यह बहुत सराहना की जाएगी

$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', '');

उम्मीद है कि यह गुणवत्ता मानक के अनुरूप है :)


हफ्तों की खोज के बाद संपादित करें यह पता चलता है कि "_downloadable_files" के बाद मेरे पास एक स्थान है, इसलिए इसे जू वाणिज्य द्वारा मान्यता नहीं मिली। इसके अलावा, मैंने पढ़ा है कि फ़ाइलों को मेरे वाणिज्य अपलोड फ़ोल्डर के तहत संग्रहीत किया जाना चाहिए।
user3361421

उन सभी update_post_meta के साथ मुझे जोड़े गए उत्पाद के संक्षिप्त विवरण को सेट करने का तरीका नहीं मिला ... मैं php कोड के साथ किसी उत्पाद का संक्षिप्त विवरण कैसे सेट कर सकता हूं?
प्रीलीट

2
मैं इसके समान कुछ पर काम कर रहा हूं, लेकिन पाया गया कि wp_insert_post का उपयोग करने के बाद पोस्ट बनाई गई है और डेटा दर्ज किया गया है, लेकिन पोस्ट वू शॉप पेज में दिखाई नहीं देता है, और श्रेणी साइडबार में दिखाई नहीं देती है। पोस्ट के रूप में बहुत अजीब है और यह सभी डेटा समर्थित में मौजूद है।
एहर्मन

@prelite संक्षिप्त विवरण के बाद का वर्णन नहीं करता है?
डैनियल

बिल्कुल अपेक्षित रूप से काम करता है
अलकसंदार जीसस जीन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.