Como adicionar produto em woocommerce com o código PHP
-
-
Adicionarprodutos via PHP serábastantetrabalho como hámuitas coisas diferentesparainserir/atualizar.Talvez [esta resposta] (http://stackoverflow.com/a/12658584/1815847)e osplugins relacionados ajudarão você afazer otrabalhomaisfacilmente :)Adding products via PHP will be quite a lot of work as there a lot of different things to insert/update. Maybe [this answer](http://stackoverflow.com/a/12658584/1815847) and the related plugins will help you to get the job done more easily :)
- 1
- 2014-03-10
- Sven
-
Em 2017,use a API REST como sugeridoem https://stackoverflow.com/a/40133117/5749914.In 2017, use the REST API as suggested in https://stackoverflow.com/a/40133117/5749914.
- 2
- 2017-06-17
- Warlike Chimpanzee
-
1 responda
- votos
-
- 2014-03-11
Émuitofácil que vocêtrabalhou os dados adicionadosnopostmeta. Problema queestoutendo é adicionarprodutospara download à loja.
Abaixoestá o código queestou usando listetodos ospostmeta que é usadopelo comércio woo. Issopublica umprodutonoentanto,o link de downloadnão será anexado.
Originalmente quandoeu comecei,cometi umerro com amatriz que armazena o link de downloadproduzindo um link ruim "B" seguidopor um segundo arquivo de download queestava correto. Depois de corrigir amatrizpara corresponder ao de umproduto adicionadomanualmente,nenhum solitáriomostrará um arquivo. Se alguémtiverinformações sobreisso,seriamuito apreciado
$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', '');
Espero queissoestejaem conformidade com opadrão de qualidade :)
Its pretty easy one you have worked out the data added in the post meta. Trouble I am having is adding downloadable products to the store.
below is the code i am using it lists all the post meta that is used by woo commerce. This publishes a product however the download link will not attach.
Originally when i started i made an error with the array that stores the download link producing a bad link "b" followed by a second download file that was correct. After fixing the array to match that of a product manually added it no loner will show a file. If anyone has info on this it would be greatly appreciated
$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', '');
hope this conforms to the quality standard :)
-
Editar após semanas depesquisa,acabaporter umespaço após o "_downloadable_files",entãonãofoi reconhecidopelo comércio Woo.Também li que os arquivos que My ser armazenado sob apasta Woo Commerce Uploads.Edit after weeks of searching it turns out that i have a space after the "_downloadable_files" so it wasnt recognized by woo commerce. Also i have read that the files my be stored under the woo commerce uploads folder.
- 0
- 2014-03-11
- user3361421
-
Comtodos aqueles update_post_meta,nãoencontrei umamaneira de definir a descrição curta doproduto adicionado ... Comoposso definir a descrição curta de umproduto com código PHP?With all those update_post_meta I didn't find a way to set the short description of the product added...How can I set the short description of a product with php code?
- 0
- 2014-09-25
- prelite
-
Eutenhotrabalhadoem algo semelhante aisso,mas descobri que depois de usar wp_insert_post apostagem é criadae inserida dados,mas opostnão aparecenapágina Woo Shop,e a categorianão aparecenabarra lateral.Muitoestranho como oposte todos os dadosexistemnobackup.I've been working on something similar to this, but found that after using wp_insert_post the post is created and data entered, but the post doesn't appear in the woo shop page, and the category doesn't appear in the sidebar. Very strange as the post and all of it's data exists in the backed.
- 2
- 2014-12-03
- EHerman
-
@prelitenão é opost_excerpt abreve descrição?@prelite isn't the post_excerpt the short-description?
- 0
- 2017-03-03
- Daniel
-
Funcionaexatamente comoesperadoWorks exactly as expected
- 0
- 2018-12-10
- Alaksandar Jesus Gene
-
Agora vocêpode usar 'Meta_Input'para definirtoda ameta dentro dométodo `WP_Insert_Post ().Now you can use 'meta_input' to set all the meta within the `wp_insert_post()` method.
- 1
- 2018-12-21
- Bjorn
-
Como definir aimagemprincipal doprodutoe agaleria?How to set product main image and gallery?
- 0
- 2020-02-14
- Muzaffar Mahmood
Eu quero adicionarprodutos com código PHP como abaixo:
Maseste código otimizapara woocommerce,como otipo depostageme guide metadadose ... alguémpode ajudar?