Jump to content

Замена ссылки по всему сайту + куки


TemKa_SD
 Share

Recommended Posts

Здравствуйте. Я сделал рабочую функцию, которая позволяет заменить мою реферальную ссылку на внешний сайт на чужую, если потенциальный реферал перешел по ссылке другого пользователя. У меня всё работает, но я хочу спросить у профессионалов правильно ли я всё реализовал.

 

        <script type='text/javascript'>
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' )	{
               $('#ref_link').attr('href', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
               $('#ref_link').attr('href', 'https://mercury.gl/'+hash);
               ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
           }

           }(jQuery, _));
       </script>

 

Здесь идет проверка на корректность ссылки, а то она не корректно заменялась при просмотре сообщения на форуме если переходить по такой ссылке: /forums/?tab=comments#comment-7

window.location.href.indexOf("?ref=") > -1

Link to comment
Share on other sites

Ну заменяет на то, что после #, как и должно быть вроде как.

Так должно или вроде?

 

Если перейти по "моей" ссылке, а далее кликнуть на "Регистрация в Меркурий Глобал", то перейдешь на "404 Not Found".

Покажите лучше по какой ссылке переходит юзер, и что на что надо заменить.

 

Пока что не понятно, зачем Вы хеш используете.

Link to comment
Share on other sites

Стандартная ссылка имеет вид:

 

https://mercury.gl/?ref=id_193761

 

где id_193761 - мой реферальный идентификатор.

 

У каждого пользователя на моем сайте есть ссылка такого вида:

 

https://mercury-global.cash#?ref=id_204018

 

где id_204018 - реф идентификатор того или иного пользователя.

 

Когда пользователь делится своей ссылкой с потенциальным рефералом, все мои ссылки ( стандартные ) заменяются на его, оно работает.

 

Как бы ссылка сформирована автоматически на сайте, и выводится в специальном блоке, пользователю просто скопировать её надо, думаю с этим проблем не будет, но да, можно добавить условией на корректность. И я хотел заменить атрибут откуда заменяется ссылка, вместо href поставить onclick, пробовал неделю назад, не получилось (

post-60255-0-52370100-1531691888_thumb.png

Link to comment
Share on other sites

  • 2 months later...

Здравствуйте. Помогите сделать замену ссылки в onclick, потом еще думаю модернизировать так - если в куках уже есть ссылка, то на новую не заменять, если перейдет по новой.

Link to comment
Share on other sites

Если так не поймете, включу сайт, сейчас в режим оффлайн перевел.

 

У меня на сайте есть ссылки такого вида:

 

<a id="ref_link" href="https://mercury.gl/?ref=id_193761">РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

 

Это моя реферальная ссылка для привлечения рефералов. У меня была задача, чтобы ссылка заменялась, если человека ко мне на сайт привел другой пригласитель по его реферальной ссылки, за это отвечают куки и js:

 

        <script type='text/javascript'>
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' )	{
               $('#ref_link').attr('href', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
               $('#ref_link').attr('href', 'https://mercury.gl/'+hash);
               ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
           }

           }(jQuery, _));
       </script>

 

Пригласитель указывать свою реферальную ссылку в профиле http://prntscr.com/ky0rly и новая готовая ссылка выводится на каждой странице в специальном блоке: http://prntscr.com/ky0s6b

 

Я хочу сделать скрытую ссылку, что-то вроде и чтобы весь функционал сохранил работоспособность:

 

<a id="ref_link" href="https://mercury.gl" onclick="location.href='https://mercury.gl/?ref=id_193761'" >РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

 

Еще вопрос, может можно это всё дело как-то интегрировать со стандартной реферальной системой комерции?

Edited by TemKa_SD
Link to comment
Share on other sites

Еще запутаннее стало.

Я хочу сделать скрытую ссылку, что-то вроде и чтобы весь функционал сохранил работоспособность:

Что это будет делать? Какова цель?

 

Еще вопрос, может можно это всё дело как-то интегрировать со стандартной реферальной системой комерции?

Там рефералы идут за регистрацию.
Link to comment
Share on other sites

Что это будет делать? Какова цель?

 

Скрытую ссылку, всмысле чтобы просто светился основной домен без реф хвоста, а реф хвост был в онклике. Цель - да просто, чтобы при наведении не пугать пользователей.

Link to comment
Share on other sites

<a id="ref_link" href="https://mercury.gl" data-ref="https://mercury.gl/?ref=id_193761">РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

 

$( "#ref_link" ).click(function(e) {
e.preventDefault();
location.href = $(e.currentTarget).attr('data-ref');
});

Link to comment
Share on other sites

Так не хочет

        <script type='text/javascript'>
           ;( function($, _, undefined){

           var hash = location.hash.substring(1);

           // Замена ссылки из куков
           var ref_linkCookie = ips.utils.cookie.get( 'ref_link' );

           if ( ref_linkCookie != '' )	{
               $('#ref_link').attr('href', ref_linkCookie);
           }

           // Запись ссылки в куки и замена при первом посещении
           if ( hash != '' && window.location.href.indexOf("?ref=") > -1 ) {
             $( "#ref_link" ).click(function(e) {
                 e.preventDefault();
                 location.href = $(e.currentTarget).attr('data-ref');
                 ips.utils.cookie.set( 'ref_link', 'https://mercury.gl/'+hash );
             });
           }

           }(jQuery, _));
       </script>

Link to comment
Share on other sites

А зачем Вы меняете ссылку, если пишите "Скрытую ссылку, всмысле чтобы просто светился основной домен без реф хвоста"?

Link to comment
Share on other sites

А зачем Вы меняете ссылку, если пишите "Скрытую ссылку, всмысле чтобы просто светился основной домен без реф хвоста"?

 

Ну да, всё так как вы и написали, только меняться должна в атрибуте data-ref="".

Link to comment
Share on other sites

Так меняйте.

 

Мой код ничего не меняет.

 

<a id="ref_link" href="https://mercury.gl" data-ref="https://mercury.gl/?ref=id_193761">РЕГИСТРАЦИЯ В МЕРКУРИЙ ГЛОБАЛ</a>

Когда пользователь кликает на ссылку, то переходит не на https://mercury.gl, а на https://mercury.gl/?ref=id_193761

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...