Wordpress में कस्टम कुकी सेट करना


13

मैं अपने वर्डप्रेस साइट के भीतर अपने विशिष्ट पृष्ठ पर लौटने वाले उपयोगकर्ताओं को फिर से रूट करने के लिए कुकीज़ सेट करने का प्रयास कर रहा हूं।

मुझे इन 2 चीजों के साथ कुछ सलाह चाहिए:

  1. जहां Wordpress में php फ़ाइलों को रीडायरेक्ट को संभालने के लिए किसी भी सामग्री को लोड करने से पहले कुकीज़ की जाँच करनी चाहिए? क्या कोई अच्छी फ़ाइल है जो दूसरों के ऊपर मौजूद होनी चाहिए?
  2. मैं ठीक से Wordpress के भीतर एक कुकी कैसे सेट करूँ? setcookie('cookie_name', 'cookie_value', time()+4000);मेरे सिस्टम में किसी भी कुकीज़ को बचाने के लिए प्रतीत नहीं होता है।

आह, एहसास हुआ कि मैं इस init () में हुक करने की जरूरत है। समाधान: मैंने function.php में एक फंक्शन बनाया है जो कुकी को सेट और चेक करेगा। इसके लिए ठीक से काम करने के लिए, फ़ंक्शन को परिभाषित करने के बाद, फ़ंक्शन के बाहर इसे कॉल करें: add_action ('init', 'function-name);

4
आपको अपने स्वयं के प्रश्न का उत्तर देने की अनुमति है ...
40XUserNotFound

2
वास्तव में, यह स्पष्ट रूप से प्रोत्साहित किया गया है। कृपया इसका उत्तर स्वयं दें। मैं इसे WordPress.SE को भी भेज रहा हूं, क्योंकि यह वहां अधिक उचित लगता है।

धन्यवाद दोस्तों - मुझे एहसास नहीं था कि एक वर्डप्रेस क्षेत्र था। और अपने आप को जवाब देने के लिए टिप के लिए धन्यवाद :) स्पष्ट, + 1 s।
एटिकस जूल

जवाबों:


17

1 - आप कुकीज़ के लिए जाँच कर सकते हैं और अपने रीडायरेक्ट का उपयोग हुक से कर सकते हैं जिसे 'इनिट' हुक जैसे किसी भी आउटपुट से पहले कहा जाता है:

<?php

// Hook the function "redirect()" on to the "init" action
add_action('init', 'redirect');

// redirect() may redirect the user depending on the cookies he has
function redirect(){
  /* CODE */
}

?>

2 - कुकीज़ सेट करने का सबसे अच्छा तरीका इस तरह से 'इनिट' हुक का उपयोग करना होगा:

<?php

add_action('init', 'my_setcookie');

// my_setcookie() set the cookie on the domain and directory WP is installed on
function my_setcookie(){
  $path = parse_url(get_option('siteurl'), PHP_URL_PATH);
  $host = parse_url(get_option('siteurl'), PHP_URL_HOST);
  $expiry = strtotime('+1 month');
  setcookie('my_cookie_name_1', 'my_cookie_value_1', $expiry, $path, $host);
  /* more cookies */
  setcookie('my_cookie_name_2', 'my_cookie_value_2', $expiry, $path, $host);
}

?>

यह अधिक सुसंगत है, यदि आपके पास www.example.com/blog पर एक ब्लॉग है , तो coockie (s) उपलब्ध नहीं होगा

  • www.example.com
  • www.example.com/store
  • example.com
  • www2.example.com
  • ...

अपडेट करें

आपको COOKIE_PATH और COOKIEDOMAIN स्थिरांक का उपयोग करने में सक्षम होना चाहिए न कि उन्हें अपने आप को बाहर निकालने के लिए, जिसे मैंने सिर्फ आंद्रे आर कोहल के उत्तर में देखा - drzaus


आप कैसे कई वेरिबल्स डालते हैं, उदाहरण के लिए Firstname, LastName, random1, random2 के बजाय सिर्फ 'my_cookie_1' वेरिएबल।?
डेमनमैन

1
बस और अधिक जोड़ेंsetcookie()
नाबिल कादिमी

ओह, मुझे नहीं पता था कि कुकीज केवल एक चर प्रति कुकी रखती हैं। क्या समय और यूआरएल कोड की आवश्यकता के बिना कई कुकीज़ सेट करने का एक तरीका है ताकि यह कम कोड की मात्रा हो? क्या उन्हें एक चर में रखा जाएगा?
डेमनमैन

तुम भी COOKIEPATHऔरCOOKIEDOMAIN उन्हें खुद को पता लगाने के बजाय स्थिरांक का उपयोग करने में सक्षम होना चाहिए , जो मैंने सिर्फ आंद्रे आर कोहल के जवाब
ड्रेज़ॉस

सुधार: COOKIE_DOMAIN
२१

11

आप शायद स्थिरांक का उपयोग करना चाहिए COOIKEPATHऔर COOKIE_DOMAIN, WP 3.0 के बाद से मौजूदा

setcookie("your_cookie", $your_value, time()+3600, COOKIEPATH, COOKIE_DOMAIN);

7

आह, एहसास हुआ कि मुझे इसे हुक करने की आवश्यकता है init()

समाधान: मैंने function.php में एक फंक्शन बनाया है जो कुकी को सेट और चेक करेगा। इसके लिए ठीक से काम करने के लिए, फ़ंक्शन को परिभाषित करने के बाद, फ़ंक्शन के बाहर इसे कॉल करें:

add_action('init', 'function-name'); 

1

इस तरह से काम किया:

    add_action( 'init', 'function-to-setcookie' ); 

    function function-to-setcookie(){

        //use condition here , in which page you eant to set cookie
        //choose a page where you want the cookie to be set
        $pageurl = get_option('siteurl').'/set-cookie-page'; 

       // use a function to get current page url and use condition 
       //to match it with the desired page where you want to set cookie 
       if ( $pageurl === current_page_url() ) {
           setcookie( 'cookie_name', 'cookie_value', $expiryTime, $cookiepath, $siteurl );
         }

    }

कृपया अपना कोड स्वरूपण ठीक करें।
जेवुस्का २ '

स्रोत के बारे में एक छोटी सी सामग्री भी वास्तव में सहायक है।
bueltge
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.