Add cookie on other buttons
-
Love this plugin, it’s perfect for my project. Only thing I’d like to add is to save the cookie when clicking on either of the buttons I have on the popslide. It seems that the cookie is saved in the front.js file. Is there a way to add the cookie on click of my input #hesb and a.button-social-login? Thanks!
-
Hi,
I’m very happy that you like Popslide ??
Option you want will be available because I got it very high on my todo list ??
So in a couple of days (or weeks) it should be available.
But if you want it like now, please let me know and I’ll send you some snippet to achive what you want ??
I would be so grateful. I’ve been trying to launch my site and playing with this for days. Thank you so much for your quick response!
Ok, the problem is with js files because by default there’s loaded minified file, not the readable one. So you must add the code to front.min.js file.
But one question. Do you want the Popslide to close when clicking on a.button-social-login? Or just cookie save?
I have realized that about the min file ??
#hesb is the submit button for an email capture form and a.button-social-login is WooCommerce Social Login. Both have their own redirects, so I assume the best would just be to save the cookie as clicking either will take you away from the page.
Oh, this way. I got it. It will be more complicated but doable ??
You can add it into the plugin’s files because with next update there will be an option for this in admin panel (these added by you will we wiped out).
Here’s the readable code (FYI):
$pop.find('#hesb, a.button-social-login').click(function(e) { e.preventDefault(); // do not redirect! Save cookie first var data = { 'action': 'popslide_ajax_save_cookie' }; $.post(popslide_settings.ajaxurl, data, function(response) { }); $(this).trigger('click'); // ok go });
And here is the full modified front.min.js file:
function popslide(){var a=jQuery.noConflict(),b=a("#popslide");"top"==popslide_settings.position?b.slideDown(popslide_settings.animation_duration,"linear"):"bottom"==popslide_settings.position&&b.slideDown(popslide_settings.animation_duration,"linear"),b.find(".popslide-close span").click(function(){b.slideUp(popslide_settings.animation_duration,"linear");var c={action:"popslide_ajax_save_cookie"};a.post(popslide_settings.ajaxurl,c,function(){})}),b.find("#hesb, a.button-social-login").click(function(b){b.preventDefault();var c={action:"popslide_ajax_save_cookie"};a.post(popslide_settings.ajaxurl,c,function(){}),a(this).trigger("click")})}jQuery(document).ready(function(a){"top"==popslide_settings.position&&a("#popslide").detach().prependTo("body"),window.setTimeout(function(){popslide()},popslide_settings.timeout)});
Let me know if it’s working as expected ??
Well this is definitely saving the cookie, but now the existing functions aren’t happening.
Nice website!
Do you got maybe preview mode enabled? I can’t see the Popslide.
And what do you mean by existing functions?
Thank you very much. I have been working on it for a few months now. Your plugin is filling that one last piece.
Hmm… It looks like I have the preview off, but I just resaved.
#hesb would submit the email form and the social-buttons send you to Facebook or Google to authenticate. Now when you click on either the page no longer loads the form or buttons.
Hmm it’s still not displaying.
but I’ve found the js error after the Popslide (or loaded in the Popslide’s content)
I mean this:
$(document).keydown(function(event) { if(event.which == 17) return false; //chrome ctrl key if(event.which == 157) return false; //mac command key if(event.ctrlKey) return false; //random });
You should change $ to jQuery here.
Because of this I propably can’t see the Popslide and see what’s going on ??
Are you on Skype?
fieifette @ Skype
I belive we have resolved this ??
This is readable code of the front.js
function popslide() { var $ = jQuery.noConflict(); var $pop = $('#popslide'); if (popslide_settings.position == 'top') $pop.slideDown(popslide_settings.animation_duration, 'linear'); else if (popslide_settings.position == 'bottom') $pop.slideDown(popslide_settings.animation_duration, 'linear'); $pop.find('.popslide-close span').click(function() { $pop.slideUp(popslide_settings.animation_duration, 'linear'); var data = { 'action': 'popslide_ajax_save_cookie' }; $.post(popslide_settings.ajaxurl, data, function(response) { }); }); $pop.find('a.button-social-login').click(function(e) { e.preventDefault(); // do not redirect! Save cookie first var button = $(this); var data = { 'action': 'popslide_ajax_save_cookie' }; $.post(popslide_settings.ajaxurl, data, function(response) { button.click(); }); }); $pop.find('#hesb').click(function(e) { e.preventDefault(); // do not redirect! Save cookie first var form = $(this).parents('form'); var data = { 'action': 'popslide_ajax_save_cookie' }; $.post(popslide_settings.ajaxurl, data, function(response) { form.submit(); }); }); } jQuery(document).ready(function($) { // move div if position is on top if (popslide_settings.position == 'top') $('#popslide').detach().prependTo('body'); window.setTimeout(function() { popslide(); }, popslide_settings.timeout); });
And the minified one:
function popslide(){var a=jQuery.noConflict(),b=a("#popslide");"top"==popslide_settings.position?b.slideDown(popslide_settings.animation_duration,"linear"):"bottom"==popslide_settings.position&&b.slideDown(popslide_settings.animation_duration,"linear"),b.find(".popslide-close span").click(function(){b.slideUp(popslide_settings.animation_duration,"linear");var c={action:"popslide_ajax_save_cookie"};a.post(popslide_settings.ajaxurl,c,function(){})}),b.find("a.button-social-login").click(function(b){b.preventDefault();var c=a(this),d={action:"popslide_ajax_save_cookie"};a.post(popslide_settings.ajaxurl,d,function(){c.click()})}),b.find("#hesb").click(function(b){b.preventDefault();var c=a(this).parents("form"),d={action:"popslide_ajax_save_cookie"};a.post(popslide_settings.ajaxurl,d,function(){c.submit()})})}jQuery(document).ready(function(a){"top"==popslide_settings.position&&a("#popslide").detach().prependTo("body"),window.setTimeout(function(){popslide()},popslide_settings.timeout)});
- The topic ‘Add cookie on other buttons’ is closed to new replies.