У меня есть пользовательский тип записи под названием Event
, который я хочу продавать через woocommerce. Итак, что я хочу, когда я создаю сообщение о событии, оно автоматически создает продукт под именем woocommerce с тем же именем. Возможно ли это?
Я попробовал следующий код, найденный в Создание продукта Woocommerce при создании сообщения
add_action( 'save_event', 'auto_create_product_from_post', 100, 2 );
function auto_create_product_from_post($id, $post){
$post_id = wp_insert_post( array(
//'post_title' => 'Adams Product',
'post_title' => $post.post_title,
'post_content' => $post.post_title,
'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', '' );
}
Но приведенный выше код выдает ошибку Recoverable fatal error: Object of class WP_Post could not be converted to string
. Я изменил хук действия на publish_event
, но мой веб-сайт зашел в бесконечный цикл и все еще создает множество продуктов даже после того, как я удалил код.