사용자가 사이트에 등록 (사용자 이름과 이메일 입력) 한 후 구매로 이동하여 인보이스 발행 및 배송 세부 사항을 기입하면 WordPress 사용자 프로필의 필드 이름이 비어 있습니다!WooCommerce - 사용자 프로필의 이름과 성 필드 채우기 - BUG?
고객이 전에 등록하지 않았지만 구매 시간을 기록하면 사용자 프로필 필드의 이름과 성이 채워집니다.
모든 솔루션?
감사합니다.
사용자가 사이트에 등록 (사용자 이름과 이메일 입력) 한 후 구매로 이동하여 인보이스 발행 및 배송 세부 사항을 기입하면 WordPress 사용자 프로필의 필드 이름이 비어 있습니다!WooCommerce - 사용자 프로필의 이름과 성 필드 채우기 - BUG?
고객이 전에 등록하지 않았지만 구매 시간을 기록하면 사용자 프로필 필드의 이름과 성이 채워집니다.
모든 솔루션?
감사합니다.
뭘 가리키는 것은 사용자 목록에서 빈 표시 이름입니다 :
는 워드 프레스 사용자 목록의 스크린 샷을 참조하십시오. 사용자 이름과 성이 존재합니다.그리 중요하지 않지만 관리자 또는 shop_manager 사용자 역할이이 정보를 검색 목적으로 사용자 목록에 가지고있어 "표시 이름"으로 사용자를 검색하는 것이 좋습니다.
사용자가 처음 등록 할 때 시작되는 함수입니다. 그 안에, 우리가 "표시 이름"가 존재하는지 확인 :
사용 function.php에 활성 자식 테마 또는 테마의 파일을 붙여 넣기 코드 : (helgatheviking에 감사)이 스레드에서 을
이add_action('user_register', 'wc_new_user_display_name_update', 10, 1);
function wc_new_user_display_name_update($user_id) {
// Check if user display name exist.
// If yes, we stop the process getting out of this function.
if (!empty(get_the_author_meta('display_name', $user_id)) {
exit;
}
$user_info = get_user_meta($user_id);
if (!empty($user_info->first_name)) {
$user_first_name = $user_info->first_name;
} else {
$user_first_name = $user_info->billing_first_name;
}
if (!empty($user_info->last_name)) {
$user_last_name = $user_info->last_name;
} else {
$user_last_name = $user_info->billing_last_name;
}
// setting up user display name
$display_name = $user_first_name . ' ' . $user_last_name;
// setting up user display name
wp_update_user(array('ID' => $user_id, 'display_name' => $display_name));
}
내 문제는 사용자 지정 woocommerce 체크 아웃 및 약간의 코딩 엉망으로 인해 사용자의 WordPress 이름을 업데이트하지 않았다 & 당시의 성 필드 새로운 주문.
위의 코드를 사용하여 시나리오를 기반으로 약간의 수정을 시도했지만 사용자가 만들어지고 순서가 정해져서 작동하지 않습니다. 따라서 그 시간까지 주문에 대한 정보는 없었습니다.
나는 다른 해결책을 후크를 시도했는데 - Updating the WooCommerce 'User Firstname Field' with 'Billing First Name' on check out하지만 그건 나에게도 효과가 없었다.
또는 process_checkout을 연결하려고 시도했지만 아무 효과가 없습니다. 라인 (24)에 <?php if (! $sent_to_admin) : ?>
:
을하여 문제를 해결했다.
<?php wp_update_user(array('ID' => (int)$order->user_id, 'first_name' => $order->billing_first_name, 'last_name' => $order->billing_last_name)); ?>
이유 : 나는 순서가 배치 된 후 값 변경을 원하고 메일은 주문 후 전송하기 때문에 배치되고,이
를 추가하는 것이 만들어