简体   繁体   English

在woocommerce中以编程方式添加产品

[英]Adding Product Programmatically in woocommerce

<?php
/**
* Template name: Create Product
* @package storefront
*/

 $post_id = wp_insert_post( array(
'post_title' => 'Adams 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', '' );
?>

I am able to create product from front-end in woo-commerce but i need like when user creating their own product then price to be change as per their input data and save in database with respective prices as well as all input data into product, suppose if user have dog who is approx.我能够在 woo-commerce 中从前端创建产品,但我需要像当用户创建自己的产品时,然后根据他们的输入数据更改价格,并以各自的价格以及所有输入产品的数据保存在数据库中,假设用户有大约是狗。 between 15-20kg(input by user) and his size(dropdown) is Overweight then according to the user input the price to be calculated. 15-20公斤(由用户输入)和他的尺寸(下拉菜单)为超重,然后根据用户输入的价格计算。 If product is successfully inserted then Add this product to his/her cart automatically and redirect to cart page.如果产品成功插入,则将此产品自动添加到他/她的购物车并重定向到购物车页面。

I am attaching my code for inserting a product from a template in front-end.我附上了从前端模板插入产品的代码。 How can i achieve that?我怎样才能做到这一点? Thanks in advance.提前致谢。

// Get informations by form
$weight = $_REQUEST['weight']; // your input
$size = $_REQUEST['size']; // your dropdown
//
// Calcul your price here with $weight and $size
// ...

Adapte your metas with your calcul用你的计算调整你的元数据

$metas = array(
  '_visibility' => 'visible',
  '_stock_status' => 'instock',
  'total_sales' => '0',
  '_downloadable' => 'no',
  '_virtual' => 'yes',
  '_regular_price' => '',
  '_sale_price' => '',
  '_purchase_note' => '',
  '_featured' => 'no',
  '_weight' => '',
  '_length' => '',
  '_width' => '',
  '_height' => '',
  '_sku' => '',
  '_product_attributes' => array(),
  '_sale_price_dates_from' => '',
  '_sale_price_dates_to' => '',
  '_price' => '',
  '_sold_individually' => '',
  '_manage_stock' => 'no',
  '_backorders' => 'no',
  '_stock' => ''
);
foreach ($metas as $key => $value) {
  update_post_meta($post_id, $key, $value);
}

// Add product to cart 
WC()->cart->add_to_cart( $post_id );

// redirect
wp_redirect(get_permalink($post_id));
exit();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM