Добавление роли пользователя в качестве пользовательских метаданных в заказы WooCommerce

#php #woocommerce #custom-fields #orders #user-roles

#php #woocommerce #пользовательские поля #заказы #роли пользователей

Вопрос:

В WooCommerce мне интересно, возможно ли сохранить роль пользователя в качестве пользовательского поля в заказе (пользовательские метаданные), используя user_role мета-ключ, как на этом скриншоте:

введите описание изображения здесь

Любая помощь приветствуется.

Ответ №1:

Следующие роли пользователей будут добавлены в качестве метаданных пользовательского заказа:

 // Add the user roles as order meta data
add_action( 'woocommerce_checkout_create_order', 'add_user_roles_to_order_meta_data', 10, 2 );
function add_user_roles_to_order_meta_data( $order, $data ) {
    if( $order->get_user_id() > 0 ) {
        $user = $order->get_user();
        $user_role = reset($user->roles)

        $order->update_meta_data( 'user_role', $user_role );
    }
}
  

Ввод кода function.php файл вашей активной дочерней темы (или active theme). Протестировано и работает.

Чтобы получить роль пользователя из переменной WC_Order Object $order , вы будете использовать:

 $user_role = $order->get_meta('user_role');
  

Или из переменной order Id $order_id :

 $user_role = get_post_meta($order_id, 'user_role', true);