শুধুমাত্র লগ ইন করা ব্যবহারকারীদের জন্য WooCommerce পৃষ্ঠাগুলি অ্যাক্সেসযোগ্য করুন ible


12

আমার ওয়ার্ডপ্রেস ব্যবহার করে একটি ওয়েবসাইট এবং WooCommerce ব্যবহার করে একটি ই-বাণিজ্য রয়েছে। আমি চাই যে আমার দোকানটি (এবং এর সমস্ত পৃষ্ঠাগুলি) কেবলমাত্র লগ ইন করা ব্যবহারকারীদের দ্বারা দেখা উচিত।

এর মাধ্যমে ব্যবহারকারীর অ্যাক্সেস ম্যানেজার প্লাগইন, আমি দোকান পৃষ্ঠা অ্যাক্সেস অস্বীকৃত হয়েছে, কিন্তু ইত্যাদি একটি পণ্য একটি সরাসরি লিঙ্ক সঙ্গে এক তা সত্ত্বেও সেই বিশেষ পাতা অ্যাক্সেস করতে পারেন, এমনকি যদি ব্যবহারকারী লগ ইন করা হয় না।

লগ ইন না করা ব্যবহারকারীরা যদি কোনও WooCommerce পৃষ্ঠা অ্যাক্সেস করার চেষ্টা করে তবে আমি কীভাবে অন্য পৃষ্ঠায় তাকে পুনঃনির্দেশ করতে পারি?

উত্তর:


24

এটি আপনার functions.phpফাইলে রাখুন :

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

এটার কাজ কি? লগ-ইন না হওয়া
কোনও ব্যবহারকারী কোনও WooCommerce পৃষ্ঠা দেখতে চায় কিনা এবং আমরা আমাদের হোম পৃষ্ঠায় তাকে পুনঃনির্দেশিত করব কিনা তা আমরা পরীক্ষা করি ।


আপনার সাহায্যের জন্য ধন্যবাদ। ফাংশন.এফপি ফাইলটি আমার থিম ফোল্ডারে আছে ?? এবং আমি কীভাবে পণ্য পৃষ্ঠা থেকে এই ফাংশনটি প্রত্যাহার করতে পারি? ধন্যবাদ :-)
আলেসান্দ্রো

আপনাকে অনেক ধন্যবাদ. আপনার কোড আমার জন্য ভাল কাজ করে। অনেক অনেক ধন্যবাদ :)
আলেসান্দ্রো

1
নিশ্চিত করুন যে আপনি কোনও ওয়ার্ককমার্স পৃষ্ঠাগুলিকে আপনার হোমপৃষ্ঠা হিসাবে সেট করেন নি, কারণ সাইটটি আর কাজ করবে না।
এসপিআরবিএনএন

7

আমি সবেমাত্র পুনঃনির্দেশকে পরিবর্তন করেছি

wp_redirect( site_url('my-account/') )

সুতরাং ব্যবহারকারীরা লগ ইন বা নিবন্ধিত না থাকলে "আমার অ্যাকাউন্ট" পৃষ্ঠাতে পুনঃনির্দেশিত হয়।


2
My Accountপৃষ্ঠায় পুনর্নির্দেশের জন্য এটি সর্বোত্তম পদ্ধতি নয় । আপনি আমার WooCommerce সেটিংসে যে লিঙ্কটি করেছেন তা আমার অ্যাকাউন্ট পৃষ্ঠার পারমালিঙ্কটি পুনরুদ্ধার করা ভাল। এই পদ্ধতিতে যখনই পারমালিঙ্ক পরিবর্তন করা হয় বা আপনার একাধিক ভাষার সাইট রয়েছে যা পারমালিংকটি এখনও চালিয়ে যাচ্ছে correctly সংক্ষেপে: হার্ডকোড পারমিলিংকস / স্লাগস (বা সাধারণভাবে ইউআরএল) না করাই ভাল। আরও ভাল পদ্ধতিটি wp_redirect( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) );
হ'ল

আপনি কোড অনুপস্থিত; এটি শেষ হয়
ব্যবহারকারীর 889030

0

আমি এই পরিবর্তন করতে হবে

wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );

পরিবর্তে

wp_redirect( site_url('my-account/') );

2
আপনি কী ব্যাখ্যা করতে পারেন কেন এই সাহায্য করবে, যাতে অন্যান্য লোকেরা আপনার উত্তর থেকে কিছু শিখতে পারে?
Krzysiek Dróżdż
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.