Cookies существуют для того, чтобы хранить какие-либо данные пользователя на его локальном компьютере в том браузере, который он использует.
Есть следующая задача:
Ваш сайт участник партнерской программы и является рефералом. За привлечение клиентов Вы, как владелец сайта, получаете какие-либо бонусы. Для того, что бы Ваш партнер мог четко понимать, что посетитель пришел по вашей реферальной ссылке и вознаграждение следует выдать именно Вам, существует некий идентификатор, который вставляется в ссылку, ведущую на сайт партнера, в виде параметра.
Предположим, Вам выдали несколько идентификаторов, по одному для каждой программе привлечения, по которому будет ясно кому именно следует начислять баллы за привлечение пользователей и какие именно схемы начисления при этом использовать. Вы разместили в интернете свои партнерские ссылки, ведущие прямиком на сайт партнера. Например, ссылка выглядит так: http://mypartnerssupersite.ru/?subid=1234
.
Теперь представьте, что Вам необходимо не просто отослать пользователя напрямую к партнеру, а провести его через свой сайт, при этом сохранив тот идентификатор, который был указан в ссылке. Что делать?
Решение: сохранение данных в cookies
Для того, чтобы сохранить тот идентификатор, который был указан в ссылке, необходимо поместить его значение в какое-то хранилище, например в cookies.
function set_subid_cookies() { if( $_GET['subid'] ) // если значение subid указано в адресной строке... // оно помещается в куку с таким же именем на время жизни сессии для данного домена setcookie( 'subid', $_GET['subid'], 0, '/', str_replace( 'http://', '', get_bloginfo( 'url' ) ) ); } add_action( 'init', 'set_subid_cookies' ); // инициализация функции
Значение идентификатора сохранено. Теперь пользователь будет бродить по Вашему сайту, а данные идентификатора будут лежать в надежном месте — у него на компьютере. При этом доступ к этим данным будет возможен только с Вашего сайта, так как это указано в функции установки cookies.
Пользователь прочел все, что ему было нужно на Вашем сайте и настало время переходить на сайт Вашего партнера. Для этого необходимо сформировать ссылку ведущую на партнерский сайт, содержащую идентификатор.
Вывод ссылки, ведущей на сайт партнера
Для вывода ссылки в нужном месте можно использовать шорткод с параметрами: ссылка на сайт партнера(вдруг их будет несколько) и текст ссылки.
Сам шорткод будет выглядеть так: [toreferer link="http://mypartnerssupersite.ru/" caption="Получить заём"]
А функция, его описывающая, приведена ниже:
function toreferer($atts) { extract( shortcode_atts( array( 'link' => '', // ссылка на реферера 'caption' => 'Получить заём', // текст ссылки ), $atts ) ); if( $link <> '' ) // если ссылка указана... return '<a target="_blank" href="' . $link .'?subid=' . $_COOKIE['subid'] . '">' . $caption . '</a>'; // возврат сформированной ссылки } add_shortcode( 'toreferer', 'toreferer' ); // создание шорткода
В функции формирующей шорткод идет проверка, была ли указана ссылка и если да, то она является основой, а в качестве значения параметра subid подставляются данные из глобальной переменной $_COOKIE, то есть из куки, которая была предварительно создана, как только пользователь попал на Ваш сайт по ссылке, содержащей параметр subid.
Итог
Помимо того, что мы привлекли пользователя на сайт партнера, что сулит вознаграждение, мы еще создали дополнительный трафик на свой сайт, что тоже может быть монетизировано.