जवाबों:
यदि आप जानना चाहते हैं कि उपयोगकर्ता वर्तमान समय में लॉग इन है या नहीं। अन्य उत्तर यह जाँचते हैं कि उपयोगकर्ता लॉग इन है या नहीं जब पृष्ठ लोड नहीं हो रहा है जब आप जावास्क्रिप्ट चला रहे हों। उपयोगकर्ता उदाहरण के लिए एक अलग टैब में लॉग इन कर सकता है
इसे अपनी जावास्क्रिप्ट में रखें
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();
अन्यथा, यह एक सुपर विश्वसनीय समाधान नहीं है। हालांकि, मैं अपने विषयों में उन कार्यों का उपयोग करता हूं, इसलिए यह मेरे लिए एक अच्छा समाधान है। सरल विचार के लिए धन्यवाद।
कृपया अपने html शरीर में body_class () जोड़ें
<body <?php body_class(); ?>>
//your html code
</body>
यह logged-in
लॉग किए गए उपयोगकर्ता के लिए जोड़ देगा तब आप केवल कस्टम उपयोगकर्ता के लिए अपने कस्टम जुकरी कोड को निष्पादित करने के लिए निम्नलिखित jquery कोड का उपयोग कर सकते हैं।
if ($('body').hasClass('logged-in')) {
//execute your jquery code.
}
एक और उदाहरण, यदि आप AJAX कॉल के लिए इसका उपयोग करना चाहते हैं।
// 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
}