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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/popup-ma.../classes/Model
File: Popup.php
$loadable = false;
[1000] Fix | Delete
break;
[1001] Fix | Delete
}
[1002] Fix | Delete
}
[1003] Fix | Delete
}
[1004] Fix | Delete
[1005] Fix | Delete
return apply_filters( 'pum_popup_is_loadable', $loadable, $this->ID );
[1006] Fix | Delete
}
[1007] Fix | Delete
[1008] Fix | Delete
/**
[1009] Fix | Delete
* Check an individual condition with settings.
[1010] Fix | Delete
*
[1011] Fix | Delete
* @param array $condition Condition to check.
[1012] Fix | Delete
*
[1013] Fix | Delete
* @return bool
[1014] Fix | Delete
*/
[1015] Fix | Delete
public function check_condition( $condition = [] ) {
[1016] Fix | Delete
$condition_args = PUM_Conditions::instance()->get_condition( $condition['target'] );
[1017] Fix | Delete
[1018] Fix | Delete
if ( ! $condition_args ) {
[1019] Fix | Delete
return false;
[1020] Fix | Delete
}
[1021] Fix | Delete
[1022] Fix | Delete
// Bail early with true for conditions that will be processed in JavaScript later.
[1023] Fix | Delete
if ( $this->is_js_condition( $condition ) ) {
[1024] Fix | Delete
return true;
[1025] Fix | Delete
}
[1026] Fix | Delete
[1027] Fix | Delete
$condition['settings'] = isset( $condition['settings'] ) && is_array( $condition['settings'] ) ? $condition['settings'] : [];
[1028] Fix | Delete
[1029] Fix | Delete
return (bool) call_user_func( $condition_args['callback'], $condition, $this );
[1030] Fix | Delete
}
[1031] Fix | Delete
[1032] Fix | Delete
/**
[1033] Fix | Delete
* Check if mobile was disabled
[1034] Fix | Delete
*
[1035] Fix | Delete
* @return bool
[1036] Fix | Delete
*/
[1037] Fix | Delete
public function mobile_disabled() {
[1038] Fix | Delete
return (bool) apply_filters( 'pum_popup_mobile_disabled', $this->get_setting( 'disable_on_mobile' ), $this->ID );
[1039] Fix | Delete
}
[1040] Fix | Delete
[1041] Fix | Delete
/**
[1042] Fix | Delete
* Check if tablet was disabled
[1043] Fix | Delete
*
[1044] Fix | Delete
* @return bool
[1045] Fix | Delete
*/
[1046] Fix | Delete
public function tablet_disabled() {
[1047] Fix | Delete
return (bool) apply_filters( 'pum_popup_tablet_disabled', (bool) $this->get_setting( 'disable_on_tablet' ), $this->ID );
[1048] Fix | Delete
}
[1049] Fix | Delete
[1050] Fix | Delete
/**
[1051] Fix | Delete
* Get a popups event count.
[1052] Fix | Delete
*
[1053] Fix | Delete
* @param string $event Event nme.
[1054] Fix | Delete
* @param string $which Which stats to get.
[1055] Fix | Delete
*
[1056] Fix | Delete
* @return int
[1057] Fix | Delete
*/
[1058] Fix | Delete
public function get_event_count( $event = 'open', $which = 'current' ) {
[1059] Fix | Delete
switch ( $which ) {
[1060] Fix | Delete
case 'current':
[1061] Fix | Delete
$current = $this->get_meta( "popup_{$event}_count" );
[1062] Fix | Delete
[1063] Fix | Delete
// Save future queries by inserting a valid count.
[1064] Fix | Delete
if ( false === $current || ! is_numeric( $current ) ) {
[1065] Fix | Delete
$current = 0;
[1066] Fix | Delete
$this->update_meta( "popup_{$event}_count", $current );
[1067] Fix | Delete
}
[1068] Fix | Delete
[1069] Fix | Delete
return absint( $current );
[1070] Fix | Delete
case 'total':
[1071] Fix | Delete
$total = $this->get_meta( "popup_{$event}_count_total" );
[1072] Fix | Delete
[1073] Fix | Delete
// Save future queries by inserting a valid count.
[1074] Fix | Delete
if ( false === $total || ! is_numeric( $total ) ) {
[1075] Fix | Delete
$total = 0;
[1076] Fix | Delete
$this->update_meta( "popup_{$event}_count_total", $total );
[1077] Fix | Delete
}
[1078] Fix | Delete
[1079] Fix | Delete
return absint( $total );
[1080] Fix | Delete
}
[1081] Fix | Delete
[1082] Fix | Delete
return 0;
[1083] Fix | Delete
}
[1084] Fix | Delete
[1085] Fix | Delete
/**
[1086] Fix | Delete
* Increase popup event counts.
[1087] Fix | Delete
*
[1088] Fix | Delete
* @param string $event Evet to increase count for.
[1089] Fix | Delete
*/
[1090] Fix | Delete
public function increase_event_count( $event = 'open' ) {
[1091] Fix | Delete
/**
[1092] Fix | Delete
* This section simply ensures that all keys exist before the below query runs. This should only ever cause extra queries once per popup, usually in the admin.
[1093] Fix | Delete
*/
[1094] Fix | Delete
$keys = PUM_Analytics::event_keys( $event );
[1095] Fix | Delete
[1096] Fix | Delete
// Set the current count.
[1097] Fix | Delete
$current = $this->get_event_count( $event );
[1098] Fix | Delete
if ( ! $current ) {
[1099] Fix | Delete
$current = 0;
[1100] Fix | Delete
}
[1101] Fix | Delete
[1102] Fix | Delete
++$current;
[1103] Fix | Delete
[1104] Fix | Delete
// Set the total count since creation.
[1105] Fix | Delete
$total = $this->get_event_count( $event, 'total' );
[1106] Fix | Delete
if ( ! $total ) {
[1107] Fix | Delete
$total = 0;
[1108] Fix | Delete
}
[1109] Fix | Delete
[1110] Fix | Delete
++$total;
[1111] Fix | Delete
[1112] Fix | Delete
$this->update_meta( 'popup_' . $keys[0] . '_count', absint( $current ) );
[1113] Fix | Delete
$this->update_meta( 'popup_' . $keys[0] . '_count_total', absint( $total ) );
[1114] Fix | Delete
$this->update_meta( 'popup_last_' . $keys[1], time() );
[1115] Fix | Delete
[1116] Fix | Delete
$site_total = get_option( 'pum_total_' . $keys[0] . '_count', 0 );
[1117] Fix | Delete
$site_total++;
[1118] Fix | Delete
update_option( 'pum_total_' . $keys[0] . '_count', $site_total );
[1119] Fix | Delete
[1120] Fix | Delete
// If is multisite add this blogs total to the site totals.
[1121] Fix | Delete
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
[1122] Fix | Delete
$network_total = get_site_option( 'pum_site_total_' . $keys[0] . '_count', false );
[1123] Fix | Delete
$network_total = ! $network_total ? $site_total : $network_total + 1;
[1124] Fix | Delete
update_site_option( 'pum_site_total_' . $keys[0] . '_count', $network_total );
[1125] Fix | Delete
}
[1126] Fix | Delete
}
[1127] Fix | Delete
[1128] Fix | Delete
/**
[1129] Fix | Delete
* Set event default values.
[1130] Fix | Delete
*
[1131] Fix | Delete
* @param string $event Event name.
[1132] Fix | Delete
*/
[1133] Fix | Delete
public function set_event_defaults( $event ) {
[1134] Fix | Delete
$this->get_event_count( $event );
[1135] Fix | Delete
$this->get_event_count( $event, 'total' );
[1136] Fix | Delete
[1137] Fix | Delete
$keys = PUM_Analytics::event_keys( $event );
[1138] Fix | Delete
$last = $this->get_meta( 'popup_last_' . $keys[1] );
[1139] Fix | Delete
[1140] Fix | Delete
if ( empty( $last ) || ! is_numeric( $last ) ) {
[1141] Fix | Delete
$this->update_meta( 'popup_last_' . $keys[1], 0 );
[1142] Fix | Delete
}
[1143] Fix | Delete
}
[1144] Fix | Delete
[1145] Fix | Delete
/**
[1146] Fix | Delete
* Log and reset popup open count to 0.
[1147] Fix | Delete
*/
[1148] Fix | Delete
public function reset_counts() {
[1149] Fix | Delete
// Log the reset time and count.
[1150] Fix | Delete
add_post_meta(
[1151] Fix | Delete
$this->ID,
[1152] Fix | Delete
'popup_count_reset',
[1153] Fix | Delete
[
[1154] Fix | Delete
'timestamp' => time(),
[1155] Fix | Delete
'opens' => absint( $this->get_event_count( 'open', 'current' ) ),
[1156] Fix | Delete
'conversions' => absint( $this->get_event_count( 'conversion', 'current' ) ),
[1157] Fix | Delete
]
[1158] Fix | Delete
);
[1159] Fix | Delete
[1160] Fix | Delete
foreach ( [ 'open', 'conversion' ] as $event ) {
[1161] Fix | Delete
$keys = PUM_Analytics::event_keys( $event );
[1162] Fix | Delete
$this->update_meta( 'popup_' . $keys[0] . '_count', 0 );
[1163] Fix | Delete
$this->update_meta( 'popup_last_' . $keys[1], 0 );
[1164] Fix | Delete
}
[1165] Fix | Delete
}
[1166] Fix | Delete
[1167] Fix | Delete
/**
[1168] Fix | Delete
* Returns the last reset information.
[1169] Fix | Delete
*
[1170] Fix | Delete
* @return mixed
[1171] Fix | Delete
*/
[1172] Fix | Delete
public function get_last_count_reset() {
[1173] Fix | Delete
$resets = $this->get_meta( 'popup_count_reset', false );
[1174] Fix | Delete
[1175] Fix | Delete
if ( empty( $resets ) ) {
[1176] Fix | Delete
// No results found.
[1177] Fix | Delete
return false;
[1178] Fix | Delete
}
[1179] Fix | Delete
[1180] Fix | Delete
if ( ! empty( $resets['timestamp'] ) ) {
[1181] Fix | Delete
// Looks like the result is already the last one, return it.
[1182] Fix | Delete
return $resets;
[1183] Fix | Delete
}
[1184] Fix | Delete
[1185] Fix | Delete
if ( count( $resets ) === 1 ) {
[1186] Fix | Delete
// Looks like we only got one result, return it.
[1187] Fix | Delete
return $resets[0];
[1188] Fix | Delete
}
[1189] Fix | Delete
[1190] Fix | Delete
usort( $resets, [ $this, 'compare_resets' ] );
[1191] Fix | Delete
[1192] Fix | Delete
return $resets[0];
[1193] Fix | Delete
}
[1194] Fix | Delete
[1195] Fix | Delete
/**
[1196] Fix | Delete
* Array comparison callback function comparing timestamps.
[1197] Fix | Delete
*
[1198] Fix | Delete
* @param array $a Array with `timestamp` key for comparison.
[1199] Fix | Delete
* @param array $b Array with `timestamp` key for comparison.
[1200] Fix | Delete
*
[1201] Fix | Delete
* @return bool
[1202] Fix | Delete
*/
[1203] Fix | Delete
public function compare_resets( $a, $b ) {
[1204] Fix | Delete
return (float) $a['timestamp'] < (float) $b['timestamp'];
[1205] Fix | Delete
}
[1206] Fix | Delete
[1207] Fix | Delete
/**
[1208] Fix | Delete
* Setup this popup when instantiated.
[1209] Fix | Delete
*
[1210] Fix | Delete
* @param WP_Post $post WP_Post object.
[1211] Fix | Delete
*/
[1212] Fix | Delete
public function setup( $post ) {
[1213] Fix | Delete
parent::setup( $post );
[1214] Fix | Delete
[1215] Fix | Delete
if ( ! $this->is_valid() ) {
[1216] Fix | Delete
return;
[1217] Fix | Delete
}
[1218] Fix | Delete
[1219] Fix | Delete
// REVIEW Does this need to be here or somewhere else like get_meta/get_setting?
[1220] Fix | Delete
if ( ! isset( $this->data_version ) ) {
[1221] Fix | Delete
$this->data_version = (int) $this->get_meta( 'data_version' );
[1222] Fix | Delete
[1223] Fix | Delete
if ( ! $this->data_version ) {
[1224] Fix | Delete
$theme = $this->get_meta( 'popup_theme' );
[1225] Fix | Delete
$display_settings = $this->get_meta( 'popup_display' );
[1226] Fix | Delete
[1227] Fix | Delete
// If there are existing settings set the data version to 2 so they can be updated.
[1228] Fix | Delete
// Otherwise set to the current version as this is a new popup.
[1229] Fix | Delete
$is_v2 = ( ! empty( $display_settings ) && is_array( $display_settings ) ) || $theme > 0;
[1230] Fix | Delete
$this->data_version = $is_v2 ? 2 : $this->model_version;
[1231] Fix | Delete
[1232] Fix | Delete
$this->update_meta( 'data_version', $this->data_version );
[1233] Fix | Delete
}
[1234] Fix | Delete
}
[1235] Fix | Delete
[1236] Fix | Delete
if ( $this->data_version < $this->model_version && pum_passive_popup_upgrades_enabled() ) {
[1237] Fix | Delete
/**
[1238] Fix | Delete
* Process passive settings migration as each popup is loaded. The will only run each migration routine once for each popup.
[1239] Fix | Delete
*/
[1240] Fix | Delete
$this->passive_migration();
[1241] Fix | Delete
}
[1242] Fix | Delete
}
[1243] Fix | Delete
[1244] Fix | Delete
/**
[1245] Fix | Delete
* Allows for passive migration routines based on the current data version.
[1246] Fix | Delete
*/
[1247] Fix | Delete
public function passive_migration() {
[1248] Fix | Delete
$this->doing_passive_migration = true;
[1249] Fix | Delete
[1250] Fix | Delete
for ( $i = $this->data_version; $this->data_version < $this->model_version; $i ++ ) {
[1251] Fix | Delete
do_action_ref_array( 'pum_popup_passive_migration_' . $this->data_version, [ &$this ] );
[1252] Fix | Delete
$this->data_version ++;
[1253] Fix | Delete
[1254] Fix | Delete
/**
[1255] Fix | Delete
* Update the popups data version.
[1256] Fix | Delete
*/
[1257] Fix | Delete
$this->update_meta( 'data_version', $this->data_version );
[1258] Fix | Delete
}
[1259] Fix | Delete
[1260] Fix | Delete
do_action_ref_array( 'pum_popup_passive_migration', [ &$this, $this->data_version ] );
[1261] Fix | Delete
[1262] Fix | Delete
$this->doing_passive_migration = false;
[1263] Fix | Delete
}
[1264] Fix | Delete
[1265] Fix | Delete
/**
[1266] Fix | Delete
* Save unsaved data.
[1267] Fix | Delete
*
[1268] Fix | Delete
* @deprecated 1.7.0 Still used in several extension migration routines, so needs to stay for now.
[1269] Fix | Delete
*/
[1270] Fix | Delete
public function save() {
[1271] Fix | Delete
try {
[1272] Fix | Delete
pum()->popups->update_item( $this->ID, $this->to_array() );
[1273] Fix | Delete
} catch ( Exception $e ) {
[1274] Fix | Delete
return;
[1275] Fix | Delete
}
[1276] Fix | Delete
}
[1277] Fix | Delete
[1278] Fix | Delete
/**
[1279] Fix | Delete
* Get instance of popup model.
[1280] Fix | Delete
*
[1281] Fix | Delete
* @deprecated 1.8.0 Only here to prevent possible errors.
[1282] Fix | Delete
*
[1283] Fix | Delete
* @param int $id Popup ID.
[1284] Fix | Delete
* @param bool $force Force load.
[1285] Fix | Delete
*
[1286] Fix | Delete
* @return PUM_Model_Popup
[1287] Fix | Delete
*/
[1288] Fix | Delete
public static function instance( $id, $force = false ) {
[1289] Fix | Delete
return pum_get_popup( $id );
[1290] Fix | Delete
}
[1291] Fix | Delete
}
[1292] Fix | Delete
[1293] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function