jquery - 使用 jQuery 有条件地在 WordPress 中打开 Popup Maker 弹出窗口

标签 jquery wordpress popup

我正在尝试在 Wordpress 中有条件地加载弹出窗口。弹出窗口在插件 Popup Maker 中配置并且有一个 CSS 类“popmake-2503”。

我在主题的functions.php中创建了一个函数,它有条件地加载脚本:

// open popup
function open_popup() {
if( is_user_logged_in() && is_page('checkout') )
    {
    wp_enqueue_script(
        'open-popup',
        get_stylesheet_directory_uri() . '/open-popup.js',
array( 'jquery' )
            );
        }
    }
add_action( 'wp_footer', 'open_popup' );

在 open-popup.js 文件中,我有以下内容:

jQuery(document).ready(function($) {
    alert ('running');
    $('#popmake-2503').popmake('open');
});

我已阅读 API但我仍然无法触发弹出窗口,并且控制台中没有显示错误。基本的 JavaScript 警报有效。

谢谢。

EDIT1:相反的工作方式,即,

$('#popmake-2503').popmake('close');

用于在自动加载弹出窗口后有效地关闭弹出窗口(如 WP 管理中的 Popup Maker 配置中所定义)。

最佳答案

您的解决方案是正确的,但目前 Popup Maker 推迟了 js 加载,因此您的代码在 .popmake('open') 函数加载和弹出窗口初始化之前运行。

我们很快就会解决这个问题,但请尝试在打开它之前添加一个短暂的超时:

jQuery(document).ready(function($) {
    setTimeout(function() {
        $('#popmake-2503').popmake('open');
    }, 2000);
});

或者更好的是连接到 pumInit像这样的事件。这样,一旦弹出窗口实际准备好,它就会打开。这也可以安全地加载到头部,因为它使用 .on 事件绑定(bind)

jQuery(document).on('pumInit', '#popmake-2503', function () {
    PUM.open(2503); // Newer method than $('#popmake-2503').popmake('open'); and uses internal selector caching.
});

最后,如果您想要一个可重复使用的解决方案,您可以 create custom conditions可以在我们的弹出条件编辑器中使用。您只需要一个条件即可进行真假检查。以下文档包含您可以使用的多个完整示例:

PS 我是 PM 的首席开发人员,所以这是事实上的最佳答案;)

关于jquery - 使用 jQuery 有条件地在 WordPress 中打开 Popup Maker 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34943931/

相关文章:

javascript - 将 HighMaps JQuery 的数据更改为本地文件

javascript - jQuery:动画 addClass() - 扩展容器?

javascript - 如果没有调用任何函数,javascript会执行吗?

php - 无法从 PHP 中的命名空间类调用全局类。使用 Composer 自动加载

javascript - 如何使用 javascript 制作的登录弹出窗口登录网站?

wpf - 单击其自己的控件模板的项目时关闭 Wpf 弹出窗口

javascript - 仅当某些单选按钮被选中时才进行 jQuery 验证

Wordpress 混合内容错误(谷歌字体相关)

javascript - 弹出窗口不会在 MVC 中弹出

javascript - 如何为移动用户切换图像?