Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
TemKa_SD

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

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

Share this post


Link to post
Share on other sites

Попробуйте

https://mercury-global.cash/forums/topic/2-merkuriy-global-izmenil-vashu-zhizn/?ref=123#test=123

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Ну заменяет на то, что после #, как и должно быть вроде как.

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

 

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

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

 

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Помогите сделать замену ссылки в onclick

Что и где это?

Покажите код

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

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

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

 

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

Там рефералы идут за регистрацию.

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
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');
});

Share this post


Link to post
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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
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

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...