Программное добавление продукта в 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', '' );
?>

Я могу создать продукт из внешнего интерфейса в woo-commerce, но мне нужно, чтобы, когда пользователь создает свой собственный продукт, цена должна быть изменена в соответствии с их входными данными и сохранена в базе данных с соответствующими ценами, а также все входные данные в продукт, предположим, если у пользователя есть собака возрастом ок. от 15 до 20 кг (вводится пользователем) и его размер (раскрывающийся список) - избыточный вес, тогда в соответствии с вводом пользователя цена будет рассчитана. Если продукт успешно вставлен, автоматически добавьте этот продукт в корзину и перенаправьте на страницу корзины.

Прилагаю свой код для вставки товара из шаблона во внешний интерфейс. Как я могу этого добиться? Заранее спасибо.


person Ravi Shankar    schedule 14.11.2017    source источник
comment
Можете уточнить формулу расчета цены?   -  person Andrew Schultz    schedule 14.11.2017


Ответы (1)


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

Адаптируйте свои мета-данные с помощью вычислений

$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();
person Sco    schedule 14.11.2017