در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

محدود کردن نمایش محصولات در ووکامرس و تایید ثبت نام کاربر

اگر هم شما دارای فروشگاهی اینترنتی هستید و اقدام به فروش محصولات اینترنی میکنید شاید برای شما مهم باشد که صرفا کاربران عضو فروشگاه صرفا به اطلاعات محصولات دسترسی داشته باشند و از طرفی هویت و عضویت این کاربران از طرف شما تایید شود باید مراحل زیر را انجام دهید. در حالت عادی ابتدا باید ثبت نام را در ووکامرس فعال نمایید چون اگر متوجه باشید صرفا در صفحه حساب کاربری ووکامرس امکان لاگین فعال بوده و صفحه ثبت نام وجود ندارد ابتدا برای همین منظور در بخش تنظیمات ووکامرس به بخش accounts مراجعه کرده و گزینه Enable registration on the "My Account" page را تیک بزنید تا فعال شود .

تنظیمات وردپرس و ووکامرس برای محدود شدن نمایش محصولات به کاربران ثبت نام کرده + تایید ثبت نام توسط ادمین +سورس کد


بعد از فعال شدن این گزینه شما گزینه ثبت نام را در کنار صفحه لاگین مشاهده خواهید کرد ولی این همه قضیه نیست و ایراداتی دارد چرا که کاربر بعد از وارد کردن ایمیل خود در بخش ثبت نام بلافاصله ثبت نام و تایید و وارد سایت خواهد شد برای جلوگیری از این امر میتوانید ابتدا پلاگین New User Approve را بر روی وردپرس نصب نمایید بعد از نصب این پلاگین حتما به خاطر داشته باشید که در بخش تنظیمات وردپرس گزینه Anyone can register را تیک بزنید تا فعال شود .

تنظیمات وردپرس و ووکامرس برای محدود شدن نمایش محصولات به کاربران ثبت نام کرده + تایید ثبت نام توسط ادمین +سورس کد


بعد از انجام مراحل بالا حالا با قرار دادن کد زیر در functions.php قرار دهید تا بعد از ثبت نام کاربر انها را بصورت اتوماتیک لاگ اوت نماید تا منتظر تایید ادمین و ارسال نام کاربری و رمز باشند .

function user_autologout(){
       if ( is_user_logged_in() ) {
                $current_user = wp_get_current_user();
                $user_id = $current_user->ID;
 
                $approved_status = get_user_meta($user_id, 'wp-approve-user', true);
 
                //if the user hasn't been approved yet by WP Approve User plugin, destroy the cookie to kill the session and log them out
    if ( $approved_status == 1 ){ 
      return $redirect_url;
    }
                else{
      wp_logout();
                        return get_permalink(woocommerce_get_page_id('myaccount')) . "?approved=false";
                }
        }
}
add_action('woocommerce_registration_redirect', 'user_autologout', 2);
 
function registration_message(){
        $not_approved_message = '

Send in your registration application today! NOTE: Your account will be held for moderation and you will be unable to login until it is approved.

'; if( isset($_REQUEST['approved']) ){ $approved = $_REQUEST['approved']; if ($approved == 'false') echo '

Registration successful! You will be notified upon approval of your account.

'; else echo $not_approved_message; } else echo $not_approved_message; } add_action('woocommerce_before_customer_login_form', 'registration_message', 2);

خوب داستان اینجا تمام نمیشود چون در حالت عادی وقتی کاربری در وردپرس ثبت نام میکند فقط یکبار برای وی ایمیل ارسال میشود ولی وقتی ما این ثبت نام را دو مرحله ای میکنیم بایستی تغییراتی بدهیم تا بعد از تایید ثبت نام کاربر یک ایمیل دیگر برای ارسال نام کاربری و پسورد برای کاربر ارسال شود برای این منظور در مسیر قالب فعلی خود woocommerceemails اگر این پوشه موجود بود که هیچ در غیراینصورت پوشه ای با عنوان emails باز کنید و در داخل آن فایلی با عنوان customer-account-approved.php بسازید و کد زیر را در آن قرار دهید

 

 


خوب در این مرحله کد زیر را در درون functions.php قرار دهید

//Email Notifications
//Content parsing borrowed from: woocommerce/classes/class-wc-email.php
function send_user_approve_email($user_id){
 
  global $woocommerce;
  //Instantiate mailer
  $mailer = $woocommerce->mailer();
 
        if (!$user_id) return;
 
        $user = new WP_User($user_id);
 
        $user_login = stripslashes($user->user_login);
        $user_email = stripslashes($user->user_email);
        $user_pass  = "As specified during registration";
 
        $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
        $subject  = apply_filters( 'woocommerce_email_subject_customer_new_account', sprintf( __( 'Your account on %s has been approved!', 'woocommerce'), $blogname ), $user );
        $email_heading  = "User $user_login has been approved";
 
        // Buffer
        ob_start();
 
        // Get mail template
        woocommerce_get_template('emails/customer-account-approved.php', array(
                'user_login'    => $user_login,
                'user_pass'             => $user_pass,
                'blogname'              => $blogname,
                'email_heading' => $email_heading
       ));
 
        // Get contents
        $message = ob_get_clean();
 
        // Send the mail
        woocommerce_mail( $user_email, $subject, $message, $headers = "Content-Type: text/htmlrn", $attachments = "" );
}
add_action('wpau_approve', 'send_user_approve_email', 10, 1);
 
function send_user_unapprove_email($user_id){
        return;
}
add_action('wpau_unapprove', 'send_user_unapprove_email', 10, 1);

حالا تقریبا کار تمام شده و شما میتوانید کاربران ثبت نام کرده را تایید و یا رد کنید و همچنین نمایش محصولات خود را برای کاربران لاگین نشده محدود کنید از طریق کد زیر میتوانید مشخص کنید که اگر کاربری لاگین نکرده باشید صرفا قادر به صفحه اصلی وب سایت بوده و نتواند به بخش محصولات برود و در صورت اینکه بخواهد روی محصولات کلیک کند به صفحه اصلی ریدایرکت خواهد شد

function wpse_131562_redirect() {
    if (
        ! is_user_logged_in()
        && (is_woocommerce() || is_cart() || is_checkout())
    ) {
        // feel free to customize the following line to suit your needs
        wp_redirect(home_url());
        exit;
    }
}
add_action('template_redirect', 'wpse_131562_redirect');


نویسنده : علی قلعه بان - دانشجوی دکتری فناوری اطلاعات
#آموزش_تنظیمات_وردپرس #آموزش_وردپرس #ووکامرس #ساخت_فروشگاه_اینترنت_با_ووکامرس
عنوان
1 محدود کردن نمایش محصولات در ووکامرس و تایید ثبت نام کاربر رایگان
2 جلوگیری از ایجاد فایل حجیم error_log در Cpanel رایگان
زمان و قیمت کل 0″ 0
1 نظر
MEYSAM_D

با سلام.. من دقیقا همچین چیزی در سایتم میخوام اولا کد بخش دوم خالی هست و فقط دو تا دات با فاصله هست ایا همین هست یا کد نذاشتین؟

دوما ایا میشه با پلاگین دسترسی کاربرا دسترسی کاربرای معمولی بعد از ثبت نام به قیمت ها ببندیم و یه کاربر جدید تعریف کنیم و اون هایی که تایید شدن رو جزو اون کنیم؟ یعنی به جای تمام این کدها..

ممنون میشم درباره کدهایی که گذاشتین و بخش خالی توضیح بدین

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....