WooCommerce ürününe php kodu [kapalı] ile nasıl eklenir


29

Aşağıdaki gibi PHP kodlu ürünler eklemek istiyorum:

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

ancak bu kod, posta tipi ve kılavuz ve meta veriler gibi WooCommerce için optimize eder ve ... Birisi yardım edebilir mi?


1
PHP ile ürün eklemek, eklemek / güncellemek için birçok farklı şey olduğundan oldukça fazla iş olacaktır. Belki bu cevap ve ilgili eklentiler işinizi daha kolay yapmanıza yardımcı olur :)
Sven

1
2017 yılında, REST API'sini stackoverflow.com/a/40133117/5749914 adresinde önerildiği şekilde kullanın .
Warlike Şempanze

Yanıtlar:


49

Son derece kolay olanı post metada eklenmiş veriyi çözdün. Karşılaştığım sorun mağazaya indirilebilir ürünler ekliyor.

Aşağıda kullanıyorum kod woo ticaret tarafından kullanılan tüm yazı meta listeler. Bu bir ürün yayınlar, ancak indirme bağlantısı eklenmez.

Başlangıçta başladığımda, indirme linkini saklayan dizi ile "b" hatalı bir link ve ardından doğru olan ikinci bir indirme dosyasını indiren bir hata yaptım. Diziyi el ile eklenen ürünle eşleştirmek için sabitledikten sonra, hiçbir yalnız dosya göstermez. Bu konuda bilgisi olan varsa, büyük memnuniyet duyacağız

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

umarım bu kalite standardına uygundur :)


Haftalar süren aramadan sonra düzenlediğim "_downloadable_files" ifadesinden sonra bir alanım olduğu anlaşılıyor, bu yüzden woo ticareti tarafından tanınmıyordu. Ayrıca, woo commerce altında kayıtlı dosyalarımın okunduğu klasörü de okudum.
kullanıcı3361421

Tüm bu update_post_meta ile eklenen ürünün kısa açıklamasını ayarlamak için bir yol bulamadım ... php kodlu bir ürünün kısa açıklamasını nasıl ayarlayabilirim?
prelite

2
Buna benzer bir şey üzerinde çalışıyorum, ancak wp_insert_post kullandıktan sonra yazının yaratıldığını ve verilerin girildiğini, ancak yazının woo shop sayfasında görünmediğini ve kategorinin kenar çubuğunda görünmediğini gördüm. Gönderi ve verilerinin tümü desteklendiğinden çok garip.
EHerman

@prelite post_excerpt değil kısa açıklama?
Daniel

Tam olarak beklendiği gibi çalışıyor
Alaksandar Jesus Gene 10:18
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.