আমি কাস্টম jquery কোডটি কার্যকর করতে চাই যা ব্যবহারকারীর জন্য লগইন ডায়ালগ দেখায় যদি তিনি একটি বোতাম টিপেন এবং তিনি লগ ইন না হন? আমি কীভাবে এটি করতে পারি?
আমি কাস্টম jquery কোডটি কার্যকর করতে চাই যা ব্যবহারকারীর জন্য লগইন ডায়ালগ দেখায় যদি তিনি একটি বোতাম টিপেন এবং তিনি লগ ইন না হন? আমি কীভাবে এটি করতে পারি?
উত্তর:
যদি আপনি বর্তমান মুহুর্তে ব্যবহারকারী লগ ইন করেছেন তবে আপনি জানতে চান। অন্যান্য উত্তরগুলি জাভাস্ক্রিপ্ট চালানোর সময় পৃষ্ঠাটি লোড না করা অবস্থায় ব্যবহারকারী লগ ইন হয়েছে কিনা তা পরীক্ষা করে থাকে। উদাহরণস্বরূপ ব্যবহারকারী পৃথক ট্যাবে লগ ইন করতে পারতেন
আপনার জাভাস্ক্রিপ্ট এ রাখুন
var data = {
action: 'is_user_logged_in'
};
jQuery.post(ajaxurl, data, function(response) {
if(response == 'yes') {
// user is logged in, do your stuff here
} else {
// user is not logged in, show login form here
}
});
আপনার ফাংশন.এফপি এ রাখুন
function ajax_check_user_logged_in() {
echo is_user_logged_in()?'yes':'no';
die();
}
add_action('wp_ajax_is_user_logged_in', 'ajax_check_user_logged_in');
add_action('wp_ajax_nopriv_is_user_logged_in', 'ajax_check_user_logged_in');
এর জন্য class
বৈশিষ্ট্যটি পরীক্ষা করুন body
: থিমটি যদি body_class()
শরীরটি ব্যবহার করে তবে logged-in
লগ ইন করা ব্যবহারকারীদের জন্য একটি শ্রেণি রয়েছে। সচেতন হন ফাংশনটি উপাদানটিতেও ব্যবহার করা যেতে পারে html
।
উদাহরণ
if(jQuery('body').hasClass('logged-in')){
// Do something
}
আপনি is_user_logged_in()
স্ক্রিপ্টটি সারণী বা মুদ্রণের জন্য কেবল শর্ত হিসাবেও ব্যবহার করতে পারেন ।
logged-in
ক্লাসের জন্য কেবল শরীর পরীক্ষা করার ধারণাটি পছন্দ করি । থিমগুলি ব্যবহার করে body_class();
বা get_body_class();
অন্যথায় এটি নিশ্চিত হওয়া উচিত যে এটি কোনও নির্ভরযোগ্য সমাধান নয়। যদিও, আমি আমার থিমগুলিতে এই ফাংশনগুলি ব্যবহার করি, তাই এটি আমার পক্ষে ভাল সমাধান। সহজ ধারণা জন্য ধন্যবাদ।
দয়া করে আপনার এইচটিএমএল বডিতে বডি_ক্লাস () যুক্ত করুন
<body <?php body_class(); ?>>
//your html code
</body>
এটি logged-in
লগইন করা ব্যবহারকারীর জন্য যুক্ত হবে তবে আপনি কেবলমাত্র লগইড ব্যবহারকারীর জন্য আপনার কাস্টম জুকারি কোডটি কার্যকর করতে নিম্নলিখিত jquery কোডটি ব্যবহার করতে পারেন।
if ($('body').hasClass('logged-in')) {
//execute your jquery code.
}
আর একটি উদাহরণ, আপনি যদি এজেএক্স কলগুলির জন্য এটি ব্যবহার করতে চান তবে।
// Simplified... please note, that all names/vars/etc. in my class got unique names.
// ...the same goes for the script handler.
class wpse69814_example
{
public $response;
public function __construct()
{
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue' ) );
add_action( 'wp_enqueue_scripts', array( $this, 'localize' ), 20 );
}
public function enqueue()
{
wp_enqueue_script(
'wpse69814_handler',
plugins_url( 'url/to/file.js', __FILE__ ),
array( 'jquery' ),
filemtime( plugins_dir_path( __FILE__ ).'/path/to/file.js' ),
true
);
}
public function localize()
{
wp_localize_script( 'wpse69814_handler, 'wpse69814_object', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'ajax_nonce' => wp_create_nonce( 'wpse69814_nonce' ),
'action' => 'wpse69814-handler-action',
'data' => array(
'is_user_logged_in' => is_user_logged_in(),
)
)
}
}
is_user_logged_in
উত্সটি আঘাতের সময় ডিওমে মিথ্যা হিসাবে ক্যাশে হবে যখন কোনও সিডিএন ব্যবহার করার সময় ব্যবহারকারী রাষ্ট্রকে এক্সএইচআর এর মাধ্যমে নো-ক্যাশে থ্রেডে বিমোচন করা উচিত। @ মৃদুল আগরওয়ালের মতামত কাজ করে তবে সাড়া জাগাতে নো-ক্যাশে শিরোনাম রয়েছে।
দয়া করে নোট করুন যে পৃষ্ঠার ক্যাশেিং প্লাগইন আপনি যদি ব্যবহার করেন তবে উপরের উদাহরণগুলির মধ্যে কোনওটিই নির্ভরযোগ্য নয়, তারপরে বডি ট্যাগের কোডটি স্থির থাকবে। এছাড়াও এটি করার একটি সহজ উপায় রয়েছে (এজাজে কোনও অতিরিক্ত কোয়েরি নেই যা সর্বোত্তম নয়)
আপনি যদি জাভাস্ক্রিপ্টের সাহায্যে লগইন হওয়া ব্যবহারকারীর পরীক্ষা করতে চান, আপনি লগ ইন করার সময় কুকি সেট করতে এবং ব্যবহারকারী লগ আউট হওয়ার সময় কুকি মুছতে আপনি এই কোডটি ব্যবহার করতে পারেন। এটি যুক্ত করুন। আপনার থিম ফাংশন.এফপি
function login_function() {
setcookie('wp_user_logged_in', 1, time() + 31556926, '/');
$_COOKIE['wp_user_logged_in'] = 1;
}
add_action('wp_login', 'login_function');
function logout_function() {
unset($_COOKIE['wp_user_logged_in']);
setcookie('wp_user_logged_in', null, -1, '/');
}
add_action('wp_logout', 'logout_function');
তারপরে এটি জাভাস্ক্রিপ্টে কুকির একটি সাধারণ পরীক্ষা।
if (document.cookie.indexOf('wp_user_logged_in') !== -1) {
//do something when user logged in
} else {
//do something when user logged out
}