질문드립니다.
현재 사이트 가입 시 이메일주소와 비밀번호만 받고있습니다.
그러다보니 사용자 목록에 사용자를 보면 이메일 외에는 공란으로 되어있습니다.
플러그인에서 user meta key를 워드프레스 기본 메타키로 맞춰주고 사용자에게 임의로 이름, 전화번호, 주소등등 입력을 한 상태에서는
정기구독 상품결제 페이지 필드에 주문자명, 전화번호, 우편번호 등등 자동으로 입력이 잘 되네요.
하지만 반대로 정기구독 상품을 구입한 인원은 워드프레스 사용자 필드에 주문자명, 전화번호, 우편번호 등등 자동으로 입력이 되질 않습니다.
정기결제 상품 구입시 워드프레스 사용자에 입력이 되게끔 처리하는 방법이 궁금합니다.
답변주세요. 항상 감사합니다.
안녕하세요~^^
코스모스팜 회원관리 플러그인에서 정기결제 시 사용자 정보를 변경하시려면
cosmosfarm_members_subscription_request_pay 액션과
워드프레스 update_user_meta 함수를 활용해보시겠어요?
올려주신 이미지 중 코스모스팜 회원관리 상품 결제 필드를 활용해서 예제 코드를 작성해봤습니다.
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_action('cosmosfarm_members_subscription_request_pay', 'my_cosmosfarm_members_subscription_request_pay', 10, 1);
function my_cosmosfarm_members_subscription_request_pay($product){
$first_name = isset($_POST['buyer_name'])&&$_POST['buyer_name'] ? sanitize_text_field($_POST['buyer_name']) : '';
$billing_phone = isset($_POST['buyer_tel'])&&$_POST['buyer_tel'] ? sanitize_text_field($_POST['buyer_tel']) : '';
$billing_postcode = isset($_POST['zip'])&&$_POST['zip'] ? sanitize_text_field($_POST['zip']) : '';
$billing_address_1 = isset($_POST['addr1'])&&$_POST['addr1'] ? sanitize_text_field($_POST['addr1']) : '';
$billing_city = isset($_POST['addr2'])&&$_POST['addr2'] ? sanitize_text_field($_POST['addr2']) : '';
$user_id = get_current_user_id();
if($user_id){
update_user_meta($user_id, 'first_name', $first_name);
update_user_meta($user_id, 'billing_phone', $billing_phone);
update_user_meta($user_id, 'billing_postcode', $billing_postcode);
update_user_meta($user_id, 'billing_address_1', $billing_address_1);
update_user_meta($user_id, 'billing_city', $billing_city);
}
}
위의 코드를 적용하시면 정기결제 시 결제 필드를
워드프레스 사용자 정보로 업데이트할 수 있습니다.
고맙습니다.
아주 잘됩니다. 감사합니다.