ওয়ার্ডপ্রেসে কাস্টম কুকিজ সেট করা হচ্ছে


13

আমি আমার ওয়ার্ডপ্রেস সাইটের মধ্যে একটি নির্দিষ্ট পৃষ্ঠায় প্রত্যাবর্তনকারী ব্যবহারকারীদের পুনরায় রুট করতে কুকিজ সেট করার চেষ্টা করছি।

আমি এই 2 টি জিনিস নিয়ে কিছু পরামর্শ চাই:

  1. ওয়ার্ডপ্রেস পিএইচপি ফাইলগুলিতে পুনর্নির্দেশ পরিচালনা করতে কোনও সামগ্রী লোড করার আগে কুকিজগুলি পরীক্ষা করা উচিত? অন্যদের মধ্যে এটির একটি ভাল ফাইল থাকা উচিত?
  2. আমি কীভাবে ওয়ার্ডপ্রেসের মধ্যে সঠিকভাবে একটি কুকি সেট করব? setcookie('cookie_name', 'cookie_value', time()+4000);আমার সিস্টেমে কোনও কুকি সংরক্ষণ করছে বলে মনে হচ্ছে না।

আহ, বুঝতে পেরেছিলাম যে এটিকে আমার (ডি) এ আটকানো দরকার। সমাধান: আমি ফাংশন.এফপি তে একটি ফাংশন তৈরি করেছি যা কুকি সেট এবং চেক করবে। এটি সঠিকভাবে কাজ করার জন্য, ফাংশনটি সংজ্ঞায়িত করার পরে, ফাংশনের বাইরে এটিকে কল করুন: add_action ('init', 'ফাংশন-নাম');

4
আপনাকে আপনার নিজের প্রশ্নের উত্তর দেওয়ার অনুমতি দেওয়া হচ্ছে ...
40XUserNotFound

2
আসলে, এটি স্পষ্টভাবে উত্সাহিত হয়েছে। দয়া করে এর উত্তর দিন। আমি এটি ওয়ার্ডপ্রেস.এসইতে প্রেরণ করছি, কারণ এটি এটি আরও উপযুক্ত বলে মনে হয়।

ধন্যবাদ ছেলেরা - আমি বুঝতে পারি নি যে সেখানে কোনও ওয়ার্ডপ্রেস অঞ্চল আছে। এবং নিজেকে উত্তর দেওয়ার জন্য টিপটির জন্য ধন্যবাদ :) এপিপ্রিসিয়েটিড, +1 এস।
এটিকাস

উত্তর:


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 - কুকিজ সেট করার সর্বোত্তম উপায়টি এইভাবে 'init' হুক ব্যবহার করা হবে:

<?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 এ একটি ব্লগ থাকে তবে কোকী (গুলি) এখানে উপলভ্য হবে না

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

হালনাগাদ

আপনার নিজের অনুসন্ধান করার চেয়ে আপনি কুকি.পি.পাথ এবং কুকিওডওভার ধ্রুবকগুলিও ব্যবহার করতে সক্ষম হবেন, যা আমি আন্দ্রে আর কোহলের উত্তরে লক্ষ্য করেছি - ড্রাজস


আপনি কীভাবে একাধিক ভেরিয়েবল স্থাপন করেছেন, উদাহরণস্বরূপ কেবলমাত্র 'my_cookie_1' ভেরিয়েবলের পরিবর্তে প্রথম নাম, লাস্টনাম, র‌্যান্ডম 1, র‌্যান্ডম 2?
দামেইনম্যান

1
কেবলমাত্র আরও যোগ করুনsetcookie()
নাবিল কাদিমি

ওহ, আমি জানতাম না কুকি প্রতি কুকিতে কেবল একটি পরিবর্তনশীল থাকে। উপরে সময় এবং ইউআরএল কোড না থাকাতে একাধিক কুকিজ সেট করার কোনও উপায় আছে যাতে এটি কম কোডের সমান হয়? তাদের একটি পরিবর্তনশীল করা হবে?
দামাইনমান


সংশোধন: COOKIE_DOMAIN
ড্রাজস

11

আপনি সম্ভবত ধ্রুবক ব্যবহার করা উচিত COOIKEPATHএবং COOKIE_DOMAIN, ডাব্লু 3.0 যেহেতু বিদ্যমান

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

7

আহ, বুঝতে পেরেছিলাম যে আমাকে এটির মধ্যে লুকানো দরকার init()

সমাধান: আমি ফাংশন.এফপি তে একটি ফাংশন তৈরি করেছি যা কুকি সেট এবং চেক করবে। এটি সঠিকভাবে কাজ করার জন্য, ফাংশনটি সংজ্ঞায়নের পরে, ফাংশনের বাইরে এই কল করুন:

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

    }

আপনার কোড ফর্ম্যাটিং ঠিক করুন।
জেভুস্কা

এছাড়াও উত্স সম্পর্কে একটি ছোট সামগ্রী সত্যই সহায়ক।
বেল্টেজ করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.