Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/popup-ma.../classes
File: Cookies.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Cookies class
[2] Fix | Delete
*
[3] Fix | Delete
* @package PUM
[4] Fix | Delete
* @copyright Copyright (c) 2023, Code Atlantic LLC
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[8] Fix | Delete
exit;
[9] Fix | Delete
}
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* Class PUM_Cookies
[13] Fix | Delete
*/
[14] Fix | Delete
class PUM_Cookies {
[15] Fix | Delete
[16] Fix | Delete
/**
[17] Fix | Delete
* @var PUM_Cookies
[18] Fix | Delete
*/
[19] Fix | Delete
public static $instance;
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* @var bool
[23] Fix | Delete
*/
[24] Fix | Delete
public $preload_posts = false;
[25] Fix | Delete
[26] Fix | Delete
/**
[27] Fix | Delete
* @var array
[28] Fix | Delete
*/
[29] Fix | Delete
public $cookies;
[30] Fix | Delete
[31] Fix | Delete
[32] Fix | Delete
/**
[33] Fix | Delete
*
[34] Fix | Delete
*/
[35] Fix | Delete
public static function init() {
[36] Fix | Delete
self::instance();
[37] Fix | Delete
}
[38] Fix | Delete
[39] Fix | Delete
/**
[40] Fix | Delete
* @return PUM_Cookies
[41] Fix | Delete
*/
[42] Fix | Delete
public static function instance() {
[43] Fix | Delete
if ( ! isset( self::$instance ) ) {
[44] Fix | Delete
self::$instance = new self();
[45] Fix | Delete
self::$instance->preload_posts = pum_is_popup_editor();
[46] Fix | Delete
}
[47] Fix | Delete
[48] Fix | Delete
return self::$instance;
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
/**
[52] Fix | Delete
* @param null $cookie
[53] Fix | Delete
*
[54] Fix | Delete
* @return mixed|null
[55] Fix | Delete
*/
[56] Fix | Delete
public function get_cookie( $cookie = null ) {
[57] Fix | Delete
$cookies = $this->get_cookies();
[58] Fix | Delete
[59] Fix | Delete
return isset( $cookies[ $cookie ] ) ? $cookies[ $cookie ] : null;
[60] Fix | Delete
}
[61] Fix | Delete
[62] Fix | Delete
/**
[63] Fix | Delete
* @return array
[64] Fix | Delete
*/
[65] Fix | Delete
public function get_cookies() {
[66] Fix | Delete
if ( ! isset( $this->cookies ) ) {
[67] Fix | Delete
$this->register_cookies();
[68] Fix | Delete
}
[69] Fix | Delete
[70] Fix | Delete
return $this->cookies;
[71] Fix | Delete
}
[72] Fix | Delete
[73] Fix | Delete
/**
[74] Fix | Delete
* Registers all known cookies when called.
[75] Fix | Delete
*/
[76] Fix | Delete
public function register_cookies() {
[77] Fix | Delete
$cookies = apply_filters(
[78] Fix | Delete
'pum_registered_cookies',
[79] Fix | Delete
[
[80] Fix | Delete
'on_popup_close' => [
[81] Fix | Delete
'name' => __( 'On Popup Close', 'popup-maker' ),
[82] Fix | Delete
],
[83] Fix | Delete
'on_popup_open' => [
[84] Fix | Delete
'name' => __( 'On Popup Open', 'popup-maker' ),
[85] Fix | Delete
],
[86] Fix | Delete
'form_submission' => [
[87] Fix | Delete
'name' => __( 'Form Submission', 'popup-maker' ),
[88] Fix | Delete
'fields' => array_merge_recursive(
[89] Fix | Delete
$this->cookie_fields(),
[90] Fix | Delete
[
[91] Fix | Delete
'general' => [
[92] Fix | Delete
'form' => [
[93] Fix | Delete
'type' => 'select',
[94] Fix | Delete
'label' => __( 'Form', 'popup-maker' ),
[95] Fix | Delete
'options' => $this->preload_posts ? array_merge(
[96] Fix | Delete
[
[97] Fix | Delete
'any' => __( 'Any Supported Form*', 'popup-maker' ),
[98] Fix | Delete
__( 'Popup Maker', 'popup-maker' ) => [
[99] Fix | Delete
'pumsubform' => __( 'Subscription Form', 'popup-maker' ),
[100] Fix | Delete
],
[101] Fix | Delete
],
[102] Fix | Delete
PUM_Integrations::get_integrated_forms_selectlist()
[103] Fix | Delete
) : [],
[104] Fix | Delete
'pri' => - 1,
[105] Fix | Delete
'std' => 'any',
[106] Fix | Delete
],
[107] Fix | Delete
'only_in_popup' => [
[108] Fix | Delete
'type' => 'checkbox',
[109] Fix | Delete
'label' => __( 'Only in this popup', 'popup-maker' ),
[110] Fix | Delete
'std' => '1',
[111] Fix | Delete
],
[112] Fix | Delete
],
[113] Fix | Delete
]
[114] Fix | Delete
),
[115] Fix | Delete
],
[116] Fix | Delete
'pum_sub_form_success' => [
[117] Fix | Delete
'name' => __( 'Subscription Form: Successful', 'popup-maker' ),
[118] Fix | Delete
],
[119] Fix | Delete
'pum_sub_form_already_subscribed' => [
[120] Fix | Delete
'name' => __( 'Subscription Form: Already Subscribed', 'popup-maker' ),
[121] Fix | Delete
],
[122] Fix | Delete
'manual' => [
[123] Fix | Delete
'name' => __( 'Manual', 'popup-maker' ),
[124] Fix | Delete
'settings_column' => '<pre class="manual-cookie-shortcode"><code>[popup_cookie name="{{data.name}}" expires="{{data.time}}" sitewide="{{data.path ? 1 : 0}}"]</code></pre>',
[125] Fix | Delete
],
[126] Fix | Delete
]
[127] Fix | Delete
);
[128] Fix | Delete
[129] Fix | Delete
// @deprecated filter.
[130] Fix | Delete
$cookies = apply_filters( 'pum_get_cookies', $cookies );
[131] Fix | Delete
[132] Fix | Delete
$this->add_cookies( $cookies );
[133] Fix | Delete
}
[134] Fix | Delete
[135] Fix | Delete
/**
[136] Fix | Delete
* @param array $cookies
[137] Fix | Delete
*/
[138] Fix | Delete
public function add_cookies( $cookies = [] ) {
[139] Fix | Delete
foreach ( $cookies as $key => $cookie ) {
[140] Fix | Delete
if ( empty( $cookie['id'] ) && ! is_numeric( $key ) ) {
[141] Fix | Delete
$cookie['id'] = $key;
[142] Fix | Delete
}
[143] Fix | Delete
[144] Fix | Delete
$this->add_cookie( $cookie );
[145] Fix | Delete
}
[146] Fix | Delete
}
[147] Fix | Delete
[148] Fix | Delete
/**
[149] Fix | Delete
* @param null $cookie
[150] Fix | Delete
*/
[151] Fix | Delete
public function add_cookie( $cookie = null ) {
[152] Fix | Delete
if ( ! empty( $cookie['id'] ) && ! isset( $this->cookies[ $cookie['id'] ] ) ) {
[153] Fix | Delete
$cookie = wp_parse_args(
[154] Fix | Delete
$cookie,
[155] Fix | Delete
[
[156] Fix | Delete
'id' => '',
[157] Fix | Delete
'name' => '',
[158] Fix | Delete
'modal_title' => __( 'Cookie Settings', 'popup-maker' ),
[159] Fix | Delete
'settings_column' => sprintf( '%s%s%s', '{{ (typeof data.session === "undefined" || data.session !== "1") ? data.time : "', __( 'Sessions', 'popup-maker' ), '" }}' ),
[160] Fix | Delete
'priority' => 10,
[161] Fix | Delete
'tabs' => $this->get_tabs(),
[162] Fix | Delete
'fields' => $this->cookie_fields(),
[163] Fix | Delete
]
[164] Fix | Delete
);
[165] Fix | Delete
[166] Fix | Delete
// Here for backward compatibility to merge in labels properly.
[167] Fix | Delete
if ( ! empty( $cookie['labels'] ) ) {
[168] Fix | Delete
foreach ( $cookie['labels'] as $key => $value ) {
[169] Fix | Delete
$cookie[ $key ] = $value;
[170] Fix | Delete
unset( $cookie['labels'][ $key ] );
[171] Fix | Delete
}
[172] Fix | Delete
unset( $cookie['labels'] );
[173] Fix | Delete
}
[174] Fix | Delete
[175] Fix | Delete
// Add cookie fields for all cookies automatically.
[176] Fix | Delete
if ( empty( $cookie['fields'] ) ) {
[177] Fix | Delete
$cookie['fields'] = $this->cookie_fields();
[178] Fix | Delete
}
[179] Fix | Delete
[180] Fix | Delete
$cookie['fields'] = PUM_Admin_Helpers::parse_tab_fields(
[181] Fix | Delete
$cookie['fields'],
[182] Fix | Delete
[
[183] Fix | Delete
'has_subtabs' => false,
[184] Fix | Delete
'name' => '%s',
[185] Fix | Delete
]
[186] Fix | Delete
);
[187] Fix | Delete
[188] Fix | Delete
$this->cookies[ $cookie['id'] ] = $cookie;
[189] Fix | Delete
}
[190] Fix | Delete
[191] Fix | Delete
return;
[192] Fix | Delete
[193] Fix | Delete
}
[194] Fix | Delete
[195] Fix | Delete
/**
[196] Fix | Delete
* Returns an array of section labels for all triggers.
[197] Fix | Delete
*
[198] Fix | Delete
* Use the filter pum_get_trigger_section_labels to add or modify labels.
[199] Fix | Delete
*
[200] Fix | Delete
* @return array
[201] Fix | Delete
*/
[202] Fix | Delete
public function get_tabs() {
[203] Fix | Delete
/**
[204] Fix | Delete
* Filter the array of trigger section labels.
[205] Fix | Delete
*
[206] Fix | Delete
* @param array $to_do The list of trigger section labels.
[207] Fix | Delete
*/
[208] Fix | Delete
return apply_filters(
[209] Fix | Delete
'pum_get_trigger_tabs',
[210] Fix | Delete
[
[211] Fix | Delete
'general' => __( 'General', 'popup-maker' ),
[212] Fix | Delete
'advanced' => __( 'Advanced', 'popup-maker' ),
[213] Fix | Delete
]
[214] Fix | Delete
);
[215] Fix | Delete
}
[216] Fix | Delete
[217] Fix | Delete
/**
[218] Fix | Delete
* Returns the cookie fields used for cookie options.
[219] Fix | Delete
*
[220] Fix | Delete
* @return array
[221] Fix | Delete
*
[222] Fix | Delete
* @uses filter pum_get_cookie_fields
[223] Fix | Delete
*/
[224] Fix | Delete
public function cookie_fields() {
[225] Fix | Delete
return apply_filters(
[226] Fix | Delete
'pum_get_cookie_fields',
[227] Fix | Delete
[
[228] Fix | Delete
'general' => [
[229] Fix | Delete
'name' => [
[230] Fix | Delete
'label' => __( 'Cookie Name', 'popup-maker' ),
[231] Fix | Delete
'placeholder' => __( 'Cookie Name ex. popmaker-123', 'popup-maker' ),
[232] Fix | Delete
'desc' => __( 'The name that will be used when checking for or saving this cookie.', 'popup-maker' ),
[233] Fix | Delete
'std' => '',
[234] Fix | Delete
'priority' => 1,
[235] Fix | Delete
],
[236] Fix | Delete
'time' => [
[237] Fix | Delete
'label' => __( 'Cookie Time', 'popup-maker' ),
[238] Fix | Delete
'placeholder' => __( '364 days 23 hours 59 minutes 59 seconds', 'popup-maker' ),
[239] Fix | Delete
'desc' => __( 'Enter a plain english time before cookie expires.', 'popup-maker' ),
[240] Fix | Delete
'std' => '1 month',
[241] Fix | Delete
'priority' => 2,
[242] Fix | Delete
],
[243] Fix | Delete
],
[244] Fix | Delete
'advanced' => [
[245] Fix | Delete
'session' => [
[246] Fix | Delete
'label' => __( 'Use Session Cookie?', 'popup-maker' ),
[247] Fix | Delete
'desc' => __( 'Session cookies expire when the user closes their browser.', 'popup-maker' ) . ' ' . sprintf( __( '%1$sNote%2$s: Modern browsers that reopen your last browser session\'s tabs do not properly clear session cookies', 'popup-maker' ), '<strong>', '</strong>' ),
[248] Fix | Delete
'type' => 'checkbox',
[249] Fix | Delete
'std' => false,
[250] Fix | Delete
'priority' => 1,
[251] Fix | Delete
],
[252] Fix | Delete
'path' => [
[253] Fix | Delete
'label' => __( 'Sitewide Cookie', 'popup-maker' ),
[254] Fix | Delete
'desc' => __( 'This will prevent the popup from triggering on all pages until the cookie expires.', 'popup-maker' ),
[255] Fix | Delete
'type' => 'checkbox',
[256] Fix | Delete
'std' => true,
[257] Fix | Delete
'priority' => 2,
[258] Fix | Delete
],
[259] Fix | Delete
'key' => [
[260] Fix | Delete
'label' => __( 'Cookie Key', 'popup-maker' ),
[261] Fix | Delete
'desc' => __( 'Changing this will cause all existing cookies to be invalid.', 'popup-maker' ),
[262] Fix | Delete
'type' => 'cookie_key',
[263] Fix | Delete
'std' => '',
[264] Fix | Delete
'priority' => 3,
[265] Fix | Delete
],
[266] Fix | Delete
],
[267] Fix | Delete
]
[268] Fix | Delete
);
[269] Fix | Delete
}
[270] Fix | Delete
[271] Fix | Delete
/**
[272] Fix | Delete
* @return array
[273] Fix | Delete
*/
[274] Fix | Delete
public function get_labels() {
[275] Fix | Delete
static $labels;
[276] Fix | Delete
[277] Fix | Delete
if ( ! isset( $labels ) ) {
[278] Fix | Delete
/**
[279] Fix | Delete
* Filter the array of cookie labels.
[280] Fix | Delete
*
[281] Fix | Delete
* @param array $to_do The list of cookie labels.
[282] Fix | Delete
*/
[283] Fix | Delete
$labels = apply_filters( 'pum_get_cookie_labels', [] );
[284] Fix | Delete
}
[285] Fix | Delete
[286] Fix | Delete
return $labels;
[287] Fix | Delete
}
[288] Fix | Delete
[289] Fix | Delete
/**
[290] Fix | Delete
* @param null $cookie
[291] Fix | Delete
* @param array $settings
[292] Fix | Delete
*
[293] Fix | Delete
* @return array
[294] Fix | Delete
* @deprecated
[295] Fix | Delete
*/
[296] Fix | Delete
public function validate_cookie( $cookie = null, $settings = [] ) {
[297] Fix | Delete
return $settings;
[298] Fix | Delete
}
[299] Fix | Delete
[300] Fix | Delete
[301] Fix | Delete
/**
[302] Fix | Delete
* @return array
[303] Fix | Delete
*/
[304] Fix | Delete
public function dropdown_list() {
[305] Fix | Delete
$_cookies = $this->get_cookies();
[306] Fix | Delete
$cookies = [];
[307] Fix | Delete
[308] Fix | Delete
foreach ( $_cookies as $id => $cookie ) {
[309] Fix | Delete
$cookies[ $id ] = $cookie['name'];
[310] Fix | Delete
}
[311] Fix | Delete
[312] Fix | Delete
return $cookies;
[313] Fix | Delete
}
[314] Fix | Delete
}
[315] Fix | Delete
[316] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function