Php 在Woocommerce 3中创建可预订产品时以编程方式添加人员类型
基本上,我正在尝试使用我制作的自定义表单在Woocommerce中添加一个新的可预订产品,因此我必须以编程方式添加产品。创建产品很好,问题是我不知道如何在我的产品中添加一个新的人员类型,这样我就可以确定多个价格 有人知道怎么做吗 这是我目前掌握的代码Php 在Woocommerce 3中创建可预订产品时以编程方式添加人员类型,php,wordpress,woocommerce,product,woocommerce-bookings,Php,Wordpress,Woocommerce,Product,Woocommerce Bookings,基本上,我正在尝试使用我制作的自定义表单在Woocommerce中添加一个新的可预订产品,因此我必须以编程方式添加产品。创建产品很好,问题是我不知道如何在我的产品中添加一个新的人员类型,这样我就可以确定多个价格 有人知道怎么做吗 这是我目前掌握的代码 $post_id = wp_insert_post( array( 'post_title' => $_POST["title"], 'post_content' => $_POST["description"],
$post_id = wp_insert_post( array(
'post_title' => $_POST["title"],
'post_content' => $_POST["description"],
'post_status' => 'publish',
'post_type' => "product",
) );
wp_set_object_terms( $post_id, 'booking', 'product_type' );
以下内容将启用“has persons”,并为可预订产品创建您的人员类型:
// Create the product
$product_id = wp_insert_post( array(
'post_title' => $_POST["title"],
'post_content' => $_POST["description"],
'post_status' => 'publish',
'post_type' => "product",
) );
// Set the product type
wp_set_object_terms( $product_id, 'booking', 'product_type' );
// Get an instance of the WC_Product Object
$product = wc_get_product($product_id);
// Enable persons and save
$product->set_has_persons(true);
$product->save();
// Here define your person types (one array by person type)
$persons_type_data = array(
// First person type
array(
'block_cost' => 0,
'cost' => 16.50,
'description' => '',
'max' => '',
'min' => '',
'name' => __('Adults'),
),
// Second person type
array(
'block_cost' => 0,
'cost' => 9.20,
'description' => '',
'max' => '',
'min' => '',
'name' => __('Childs'),
),
);
// Loop Through persons type data
foreach( $persons_type_data as $key => $values ){
$person_type = new WC_Product_Booking_Person_Type();
$person_type->set_block_cost($values['block_cost']);
$person_type->set_cost($values['cost']);
$person_type->set_description($values['description']);
$person_type->set_max($values['max']);
$person_type->set_min($values['min']);
$person_type->set_name($values['name']);
$person_type->set_parent_id($product_id);
$person_type->set_sort_order($key); // Sorting is based on the array order
// Save the person type
$person_type->save();
// Add the person type to the array
$persons[] = $person_type;
}
// Set person types and save the product
$product->set_person_types($persons);
$product->save();
已测试且有效。您所说的人员类型究竟是什么意思?我无法正确理解您的问题,请您进一步解释好吗?@kashalo在woocommerce bookings中,您可以为每个预订产品设置不同的人员类型…@LoicTheAztec感谢您的解释,我将安装预订插件并四处查看