woocommerce에서 PHP 코드로 제품을 추가하는 방법
-
-
PHP를 통해 제품을 추가하는 것은 삽입/업데이트해야 할 다양한 사항이 많기 때문에 상당히 많은 작업이 될 것입니다.아마도 [이 답변] (http://stackoverflow.com/a/12658584/1815847) 및 관련 플러그인이 작업을 더 쉽게 수행하는 데 도움이 될 것입니다. :)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
-
2017 년에는 https://stackoverflow.com/a/40133117/5749914에 제안 된 REST API를 사용하십시오.In 2017, use the REST API as suggested in https://stackoverflow.com/a/40133117/5749914.
- 2
- 2017-06-17
- Warlike Chimpanzee
-
1 대답
- 투표
-
- 2014-03-11
포스트 메타에 추가 된 데이터를 해결하는 것은 매우 쉽습니다. 내가 가지고있는 문제는 스토어에 다운로드 가능한 제품을 추가하는 것입니다.
아래는 내가 사용하고있는 코드는 woo commerce에서 사용하는 모든 포스트 메타를 나열한 것입니다. 이렇게하면 제품이 게시되지만 다운로드 링크는 첨부되지 않습니다.
원래 시작했을 때 다운로드 링크를 저장하는 배열에 잘못된 링크 "b"와 올바른 두 번째 다운로드 파일을 생성하는 오류가 발생했습니다. 수동으로 추가 한 제품의 배열과 일치하도록 배열을 수정 한 후에는 파일이 표시되지 않습니다. 누구든지 이것에 대한 정보를 가지고 있다면 대단히 감사하겠습니다
$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', '');
품질 표준을 준수하기를 바랍니다. :)
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 :)
-
몇 주 동안 검색 한 후 "_downloadable_files"뒤에 공백이있는 것으로 밝혀져 woo commerce에서 인식하지 못했습니다.또한 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
-
모든 update_post_meta에서 추가 된 제품에 대한 간단한 설명을 설정하는 방법을 찾지 못했습니다 ... 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
-
나는 이와 비슷한 작업을 해왔지만 wp_insert_post를 사용한 후 게시물이 생성되고 데이터가 입력되었지만 게시물이 woo shop 페이지에 나타나지 않고 카테고리가 사이드 바에 나타나지 않는다는 것을 발견했습니다.게시물과 모든 데이터가 백업에 존재하기 때문에 매우 이상합니다.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는post_excerpt가 짧은 설명이 아닙니까?@prelite isn't the post_excerpt the short-description?
- 0
- 2017-03-03
- Daniel
-
예상대로 정확하게 작동Works exactly as expected
- 0
- 2018-12-10
- Alaksandar Jesus Gene
-
이제 'meta_input'을 사용하여`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
-
제품 메인 이미지와 갤러리는 어떻게 설정하나요?How to set product main image and gallery?
- 0
- 2020-02-14
- Muzaffar Mahmood
아래와 같은 PHP 코드로 제품을 추가하고 싶습니다.
하지만이 코드는 포스트 유형,GUID 및 메타 데이터와 같은 WooCommerce에 최적화되어 있습니다. 누군가 도와 줄 수 있나요?