Cómo agregar un producto en woocommerce con código php
-
-
Agregarproductos através de PHP requerirámuchotrabajo ya que haymuchas cosas diferentesparainsertar/actualizar.Quizás [esta respuesta] (http://stackoverflow.com/a/12658584/1815847) y los complementos relacionados le ayudarán a hacereltrabajomásfácilmente :)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
-
En 2017,use la API REST como se sugiereen 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 respuesta
- votos
-
- 2014-03-11
Esbastantefácil que hayas calculado los datos agregadosen elmeta de lapublicación. Elproblema quetengoes agregarproductos descargables a latienda.
A continuación semuestrael código queestoy usando;enumeratodos losmetadatos de laspublicaciones que utiliza woo commerce. Estopublica unproducto,sinembargo,elenlace de descargano se adjunta.
Originalmente,cuando comencé,cometí unerror con lamatriz que almacenaelenlace de descarga yproducía unenlaceincorrecto "b" seguido de un segundo archivo de descarga queera correcto. Después de arreglar lamatrizpara que coincida con la de unproducto agregadomanualmente,nadiemostrará un archivo. Si alguientiene información sobreesto,se lo agradeceríamucho
$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 queesto cumpla conelestándar de calidad :)
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 después de semanas debúsqueda,resulta quetengo unespacio después de "_downloadable_files"por lo quenofue reconocidopor Woo Commerce.También he leído que los archivos sepueden almacenaren la carpeta de cargas de woo commerce.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
-
Contodosesos update_post_metanoencontré unamanera de configurar la descripciónbreve delproducto agregado ... ¿Cómopuedo configurar la descripciónbreve de unproducto con códigophp?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
-
Heestadotrabajandoen algo similar aesto,pero descubrí que después de usar wp_insert_post,se crea lapublicación y seingresan los datos,pero lapublicaciónno apareceen lapágina de latienda woo y la categoríano apareceen labarra lateral.Muyextraño ya que lapublicación ytodos sus datosexistenen el respaldo.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
-
@prelite ¿noeselpost_excerpt la descripción corta?@prelite isn't the post_excerpt the short-description?
- 0
- 2017-03-03
- Daniel
-
Funcionaexactamente como seesperabaWorks exactly as expected
- 0
- 2018-12-10
- Alaksandar Jesus Gene
-
Ahorapuede usar 'meta_input'para configurartodos losmeta dentro delmé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
-
¿Cómo configurar laimagenprincipal y lagalería delproducto?How to set product main image and gallery?
- 0
- 2020-02-14
- Muzaffar Mahmood
Quiero agregarproductos con código PHP comoel siguiente:
peroeste código se optimizapara WooCommerce,comoeltipo depublicación,laguía y losmetadatos y ... ¿Alguienpuede ayudar?