管理パネルを使用せずに、問題なく製品をカートに追加したい。カートに追加してから、PHPコードを使用してチェックアウトします。では、どうすればそれを達成できますか、またどこにコードを配置すればよいですか?
プラグインから投稿データを受け入れるプラグインファイルでphpスクリプトを書いています。私のコードは
<?php
var_dump($_POST);
$post_id = wp_insert_post( array(
'post_title' => 'Great new product',
'post_content' => 'Here is content of the post, so this is our great new products description',
'post_status' => 'publish',
'post_type' => "product",
) );
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', 'no' );
update_post_meta( $post_id, '_virtual', 'yes' );
update_post_meta( $post_id, '_regular_price', '' );
update_post_meta( $post_id, '_sale_price', '' );
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', '' );
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', '' );
?>
私はwordpress 4.9とwoocommerceプラグインを使用しています。私がこれを解決するのを助けてください私はワードプレスが初めてで、これをたくさん検索しましたが、何も私のために働いていません。このコードを記述できる場所、または不足しているもの
これにより、開始するためのベースが得られます。
function generate_simple_product() {
$name = 'My Product Name';
$will_manage_stock = true;
$is_virtual = false;
$price = 1000.00;
$is_on_sale = true;
$sale_price = 999.00;
$product = new \WC_Product();
$image_id = 0; // Attachment ID
$gallery = self::maybe_get_gallery_image_ids();
$product->set_props( array(
'name' => $name,
'featured' => false,
'catalog_visibility' => 'visible',
'description' => 'My awesome product description',
'short_description' => 'My short description',
'sku' => sanitize_title( $name ) . '-' . Rand(0, 100), // Just an example
'regular_price' => $price,
'sale_price' => $sale_price,
'date_on_sale_from' => '',
'date_on_sale_to' => '',
'total_sales' => 0,
'tax_status' => 'taxable',
'tax_class' => '',
'manage_stock' => $will_manage_stock,
'stock_quantity' => $will_manage_stock ? 100 : null, // Stock quantity or null
'stock_status' => 'instock',
'backorders' => 'no',
'sold_individually' => true,
'weight' => $is_virtual ? '' : 15,
'length' => $is_virtual ? '' : 15,
'width' => $is_virtual ? '' : 15,
'height' => $is_virtual ? '' : 15,
'upsell_ids' => '',
'cross_sell_ids' => '',
'parent_id' => 0,
'reviews_allowed' => true,
'purchase_note' => '',
'menu_order' => 10,
'virtual' => $is_virtual,
'downloadable' => false,
'category_ids' => '',
'tag_ids' => '',
'shipping_class_id' => 0,
'image_id' => $image_id,
'gallery_image_ids' => $gallery,
) );
$product->save();
return $product;
}
上記のコードは、WooCommerce自身が作成したWooCommerce Smooth Generatorから取得したものです。主にテストに使用されます。
https://github.com/woocommerce/wc-smooth-generator
例:
// Generate WC_Product object and save it to database
// 70% change generated product is simple
// 30% chance generated product is variable
$product = \WC\SmoothGenerator\Generator\Product::generate();
// Returns WC_Product object of Simple product and don't save it to database
$product = \WC\SmoothGenerator\Generator\Product::generate_simple_product();
// Returns WC_Product object of Variable Product and saves it to database
$variable_product = \WC\SmoothGenerator\Generator\Product::generate_variable_product();
Src: https://github.com/woocommerce/wc-smooth-generator/blob/master/includes/Generator/Product.php
プログラムで製品を作成する場合は、必要に応じて上記のProduct generatorクラスを編集できます。