Я хочу обновить автора заказа WooCommerce на основе автора первого элемента корзины.
WooCommerce не поддерживает авторов из коробки, но я их включил.
function function_to_add_author_woocommerce() {
add_post_type_support( 'product', 'author' );
add_post_type_support( 'shop_order', 'author' );
}
add_action('init', 'function_to_add_author_woocommerce', 999 );
Я составил код ниже, но я немного застрял. Не знаю, лучше ли это сделать до создания заказа или после него.
function before_checkout_create_order( $order, $data ) {
// Vars
$post = get_post( '42962' ); // Demo first product
$get_post_author = $post->post_author; // Get author of first product
$contents = WC()->cart->cart_contents;
// Get first product
$imploded = array();
foreach( WC()->cart->get_cart() as $cart_item ){
$imploded[] = implode($cart_item['product_id'], $cart_item);
}
// Update shop_order author
$my_post = array(
'ID' => '20', // Demo order_ID, I need to get this as well!
'post_author' => $get_post_author,
);
wp_update_post( $my_post );
// Debug
write_log($imploded);
write_log($contents);
write_log($post);
write_log($get_post_author);
}
add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 2);