Popup makerでポップアップをランダム表示する方法
どうも、Webラボです。
ポップアップをランダムに表示しようとして、同じ条件でポップアップを表示するようにしました。
そうするとクッキーは両方読み込まれるのですが、どちらか一方しか読み込まれなかったです。
ちゃんと条件とか制御しないとそう簡単にうまくはいきませんねw
popup maker自体にはランダム表示するほう方法はなさそうです(調査不完全)
公式に良さげなページがあったので共有しますね。
A/B Test or Randomly Display Popups
(function ($, document) {
// Customize these variables.
// ----------------------------------
var popups = [163, 165], // Comma separated popup IDs.
cookie_name = 'pum-split-test', // Cookie name for the test only.
cookie_time = '1 month', // Cookie timer.
// ------------------------------
// End Customizations.
chosen_popup = false; // Empty placeholder.
function random_popup() {
return popups[Math.floor(Math.random() * popups.length)];
}
function get_chosen_popup() {
var popup,
cookie;
if ($.pm_cookie === undefined) {
return 0;
}
cookie = parseInt($.pm_cookie(cookie_name)) || false;
// If the cookie contains a value use it.
if (cookie > 0 && popups.indexOf(cookie) !== -1) {
popup = cookie;
} else if (!cookie) {
popup = random_popup();
$.pm_cookie(cookie_name, popup, cookie_time, '/');
}
return popup;
}
// Prevent non chosen popups from opening.
$(document).on('pumBeforeOpen', '.pum', function () {
var $this = $(this),
ID = $this.popmake('getSettings').id;
if (!chosen_popup) {
chosen_popup = get_chosen_popup();
}
if (popups.indexOf(ID) >= 0 && ID !== chosen_popup) {
$this.addClass('preventOpen');
} else {
$this.removeClass('preventOpen');
}
});
}(jQuery, document));
エンジニアの方ならだいたい見るだけで分かるかな?
僕もそこまでコードは得意ではないですが、実装したらブログに書き起こしてみようと思います。
【Web系のお仕事依頼はココナラまで】
★ココナラプロフィール|SEO、サイト高速化、WPカスタマイズ等のご相談下さい
https://coconala.com/users/391337
■WordPress関連情報|サイト高速化/SEO/カスタマイズ等
https://wordpress-wiki.com/
■海外旅行情報サイト|バックパッカーブログ
https://kaigairyokou.info/
【Webラボプロフィール】
ココナラで主に活動中のWeb系エンジニア。趣味は海外バックパック。
実績は150件を超え、WordPress界隈では人気ユーザの仲間入り。
特にSEO対策、サイト高速化、カスタマイズで高い評価を獲得。
サーバー移行やエラー対応などWeb系なら一通り対応致します。
この記事が気に入ったらサポートをしてみませんか?