#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);