WooCommerce 등록 이메일 인증을 추가하는 방법

게시 됨: 2021-05-24

WooCommerce 등록 이메일 확인 추가 맞춤 WooCommerce 등록 이메일 확인을 추가하시겠습니까? 이 게시물이 간단한 솔루션을 제공하므로 계속 읽으십시오.

WooCommerce 등록 이메일 인증을 추가하는 것은 복잡한 과정이 아닙니다. 그러나 이를 달성하려면 몇 가지 기본 코딩 기술이 필요할 수 있습니다. 예, 플러그인을 사용할 수 있지만 사이트가 부풀려질 수 있습니다. 이것은 또한 사용자 정의를 만드는 안전한 방법입니다.

또한 하위 테마를 만드는 것이 좋습니다. 이렇게 하면 업데이트 중에 변경 사항이 손실되지 않습니다.

WooCommerce 등록 이메일 확인 추가

이 게시물이 끝나면 WooCommerce 등록 이메일 확인을 추가할 수 있습니다. 이를 달성하기 위해 사용자 지정 코드 조각을 만들었습니다. 초보자가 이 솔루션을 더 쉽게 구현할 수 있도록 따라야 하는 모든 단계를 안내합니다.

바로 들어가 보겠습니다.

WooCommerce 등록 이메일 확인을 추가하는 단계

계속하기 전에 사이트를 백업하는 것을 잊지 마십시오. 이렇게 하면 문제가 발생할 경우 이전 버전으로 되돌리는 데 도움이 됩니다.

다음은 따라야 할 간단한 단계입니다.

  1. WordPress 사이트에 로그인하고 관리자로 대시보드 에 액세스합니다.
  2. 대시보드 메뉴에서 모양 메뉴 > 테마 편집기 메뉴 를 클릭합니다. 테마 편집기 페이지가 열리면 WooCommerce의 제품에 GTIN 번호 기능을 추가할 기능을 추가할 테마 기능 파일을 찾으십시오.
  3. php 파일 에 다음 코드를 추가 합니다.
// this is just to prevent the user log in automatically after register

function wc_registration_redirect( $redirect_to ) {

 wp_logout();

 wp_redirect( '/sign-in/?q=');

 exit;

}

// when user login, we will check whether this guy email is verify

function wp_authenticate_user( $userdata ) {

 $isActivated = get_user_meta($userdata->ID, 'is_activated', true);

if ( !$isActivated ) {

 $userdata = new WP_Error(
'inkfool_confirmation_error',

__( '<strong>ERROR:</strong> Your account has to be activated before you can login. You can resend by clicking <a href="/sign-in/?u='.$userdata->ID.'">here</a>', 'inkfool' )

 );

 }

&return $userdata;

}

// when a user register we need to send them an email to verify their account

function my_user_register($user_id) {

 // get user data

$user_info = get_userdata($user_id);

 // create md5 code to verify later
$code = md5(time());

 // make it into a code to send it to user via email

 $string = array('id'=>$user_id, 'code'=>$code);

// create the activation code and activation status

update_user_meta($user_id, 'is_activated', 0);

 update_user_meta($user_id, 'activationcode', $code);
; // create the url

 $url = get_site_url(). '/sign-in/?p=' .base64_encode( serialize($string));

 // basically we will edit here to make this nicer

 $html = 'Please click the following links <br/><br/> <a href="'.$url.'">'.$url.'</a>';

// send an email out to user

 wc_mail($user_info->user_email, __('Please activate your account'), $html);

}

// we need this to handle all the getty hacks i made

function my_init(){

 // check whether we get the activation message

 if(isset($_GET['p'])){

 $data = unserialize(base64_decode($_GET['p']));

 $code = get_user_meta($data['id'], 'activationcode', true);

 // check whether the code given is the same as ours

if($code == $data['code']){
 // update the db on the activation process

update_user_meta($data['id'], 'is_activated', 1);

wc_add_notice( __( '<strong>Success:</strong> Your account has been activated! ', 'inkfool' )  );

}else{
 wc_add_notice( __( '<strong>Error:</strong> Activation fails, please contact our administrator. ', 'inkfool' )  );
}

 }

if(isset($_GET['q'])){

wc_add_notice( __( '<strong>Error:</strong> Your account has to be activated before you can login. Please check your email.', 'inkfool' ) );

 }

if(isset($_GET['u'])){

 my_user_register($_GET['u']);

wc_add_notice( __( '<strong>Succes:</strong> Your activation email has been resend. Please check your email.', 'inkfool' ) );

 }

}

// hooks handler

add_action( 'init', 'my_init' );

add_filter('woocommerce_registration_redirect', 'wc_registration_redirect');

add_filter('wp_authenticate_user', 'wp_authenticate_user',10,2);

add_action('user_register', 'my_user_register',10,2);

결론

지금쯤이면 스토어의 고객이 스토어에서 제품을 구매하려면 등록 후 이메일을 확인해야 합니다. 이 코드는 테스트되었으며 잘 작동합니다.

이 솔루션을 구현하는 데 문제가 있는 경우 전문가에게 코드를 삽입하거나 플러그인을 사용하도록 해야 합니다.

이 솔루션이 WooCommerce 등록 이메일 확인을 추가하는 데 도움이 되었기를 바랍니다.

유사한 기사

  1. WooCommerce에서 별도의 로그인 및 등록 페이지를 만드는 방법