| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- if ( ! defined( 'ABSPATH' ) ) {
- exit;
- }
- /**
- * Class PUM_Shortcode_PopupCookie
- *
- * Registers the popup_cookie shortcode.
- */
- class PUM_Shortcode_PopupCookie extends PUM_Shortcode {
- public $version = 2;
- public $has_content = false;
- /**
- * The shortcode tag.
- */
- public function tag() {
- return 'popup_cookie';
- }
- public function label() {
- return __( 'Popup Cookie', 'popup-maker' );
- }
- public function description() {
- return __( 'Insert this to manually set cookies when users view the content containing the code.', 'popup-maker' );
- }
- public function post_types() {
- return array( '*' );
- }
- public function fields() {
- return [
- 'general' => [
- 'main' => [
- 'name' => [
- 'label' => __( 'Cookie Name', 'popup-maker' ),
- 'placeholder' => __( 'Cookie Name ex. popmaker-123', 'popup-maker' ),
- 'desc' => __( 'The name that will be used when checking for or saving this cookie.', 'popup-maker' ),
- 'std' => '',
- ],
- 'expires' => [
- 'label' => __( 'Cookie Time', 'popup-maker' ),
- 'placeholder' => __( '364 days 23 hours 59 minutes 59 seconds', 'popup-maker' ),
- 'desc' => __( 'Enter a plain english time before cookie expires.', 'popup-maker' ),
- 'std' => '1 month',
- ],
- 'sitewide' => [
- 'label' => __( 'Sitewide Cookie', 'popup-maker' ),
- 'desc' => __( 'This will prevent the popup from triggering on all pages until the cookie expires.', 'popup-maker' ),
- 'type' => 'checkbox',
- 'std' => true,
- ],
- 'only_onscreen' => [
- 'label' => __( 'Only when visible on-screen', 'popup-maker' ),
- 'desc' => __( 'This will prevent the cookie from getting set until the user scrolls it into viewport.', 'popup-maker' ),
- 'type' => 'checkbox',
- 'std' => false,
- ],
- ],
- ],
- ];
- }
- /**
- * Shortcode handler
- *
- * @param array $atts shortcode attributes
- * @param string $content shortcode content
- *
- * @return string
- */
- public function handler( $atts, $content = null ) {
- $atts = $this->shortcode_atts( $atts );
- $args = [
- 'name' => $atts['name'],
- 'time' => $atts['expires'],
- 'path' => $atts['sitewide'],
- ];
- // This shortcode requires our scripts, but can be used on pages where no popups exist.
- wp_enqueue_script( 'popup-maker-site' );
- $onscreen = 'data-only-onscreen="' . ( $atts['only_onscreen'] ? 1 : 0 ) . '"';
- return "<div class='pum-cookie' data-cookie-args='" . json_encode( $args ) . "' $onscreen></div>";
- }
- public function template() { ?>
- <div class="pum-cookie"><?php echo __( 'Popup Cookie', 'popup-maker' ); ?></div><?php
- }
- }
|