Я пытаюсь реализовать функцию, при которой клиенты получают новую роль пользователя после выполнения определенного количества заказов, но все эти заказы должны быть выполнены в течение одного года.
Мне удалось назначить роль пользователя на основе n-го количества заказов, но, похоже, я не могу выйти за пределы того, где нужно принимать во внимание дату, может кто-то указать мне правильное направление или указать, что я мог бы пропал без вести.
Это то, что я пробовал до сих пор.
function change_user_role_on_order_status_completed( $order_id ) {
$order = new WC_Order( $order_id );
$user_id = $order->user_id;
$order_this_year = false;
$current_date = date('Y');
$total_orders = get_posts( array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => $user_id,
'post_type' => 'shop_order',
) );
if ( $total_orders > 1 ) {
foreach ($order->get_items() as $item_key => $item_values):
// Get the item date
if ($item_date = $item_values->get_date_completed()->format ('Y') == $current_date) {
$order_this_year = true;
}
endforeach;
if ($order_this_year) {
$user = new WP_User( $order->user_id );
// Set role editor
$user->set_role( 'customer_club' );
}
}
}
add_action( 'woocommerce_order_status_completed', 'change_user_role_on_order_status_completed', 10, 1 );