Как разработать партнерскую систему на 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>

Просто имейте текст, который побуждает их копировать сгенерированную строку.

Не нужно усложнять.

Другие вопросы по тегам