Как разработать партнерскую систему на CodeIgniter, чтобы использовать на каждой странице сайта?
Я разрабатываю партнерскую систему для сайта электронной коммерции на CodeIgniter, и мне интересно, каков наилучший подход для этого.
Я хочу, чтобы партнеры могли ссылаться на каждую страницу на сайте.
Поэтому в идеале партнеры должны скопировать нужную ссылку на моем веб-сайте, добавить идентификационный суффикс и использовать его в качестве реферальной ссылки.
Я думал, что поручу партнерке добавить /ref/ref_id
суффикс для каждой ссылки, а затем использовать $this->uri->uri_to_assoc(n)
в моем заголовке (т.е. - на каждой странице), и искать пару 'ref' => 'ref_id'
в результирующем массиве.
Проблема в том, что некоторые страницы имеют четное количество сегментов в URI, а другие имеют нечетное количество сегментов.
так, mywebsite.com/item/item_id/ref/ref_id
даст:
array
'item' => 'item_id'
'ref' => 'ref_id'
Что здорово. Но mywebsite.com/aboutus/ref/ref_id
даст:
array
'aboutus' => 'ref'
'ref_id' => false
Что не очень полезно.
Также я не могу использовать этот синтаксис на самой домашней странице (mywebsite.com/ref/ref_id
) потому что я получаю страницу 404 не найдена, так как нет ref
функция в моем домашнем контроллере.
Другой вариант, который я думал, это использовать строку запроса (mywebsite.com/about?ref=ref_id
), но это не похоже на CodeIgniterish, не так ли?
Так что будет лучшим способом реализовать это?
1 ответ
Я работал с партнерским сайтом на CodeIgniter, и проще всего было просто:
http://mywebsite.com/ref/ref_id?url=whateverorthesame.com/aboutus
Затем в controllers/ref.php сохраните куки на основе ref_id
(возможно, вы захотите использовать для этого маршрутизацию) и просто перенаправить их на $this->input->get('url')
, Теперь вы можете волшебным образом перенаправить их на другие сайты!:)
Пусть они просто введут URL в текстовое поле и через ajax:
<script type="text/javascript">
// jQuery dependent
$('input#url').bind('change', function() {
$('div#copy_box').text('<?=base_url()?>ref/<?=$user->id?>?url='+encodeURIComponent($(this).val()));
});
</script>
Просто имейте текст, который побуждает их копировать сгенерированную строку.
Не нужно усложнять.