<?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. between 15-20kg(input by user) and his size(dropdown) is Overweight then according to the user input the price to be calculated. 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();