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/Admin
File: Popups.php
[1000] Fix | Delete
/**
[1001] Fix | Delete
* Fills default settings only when missing.
[1002] Fix | Delete
*
[1003] Fix | Delete
* Excludes checkbox type fields where a false value is represented by the field being unset.
[1004] Fix | Delete
*
[1005] Fix | Delete
* @param array $settings
[1006] Fix | Delete
*
[1007] Fix | Delete
* @return array
[1008] Fix | Delete
*/
[1009] Fix | Delete
public static function fill_missing_defaults( $settings = [] ) {
[1010] Fix | Delete
$excluded_field_types = [ 'checkbox', 'multicheck' ];
[1011] Fix | Delete
[1012] Fix | Delete
$defaults = self::defaults();
[1013] Fix | Delete
foreach ( $defaults as $field_id => $default_value ) {
[1014] Fix | Delete
$field = self::get_field( $field_id );
[1015] Fix | Delete
if ( isset( $settings[ $field_id ] ) || in_array( $field['type'], $excluded_field_types ) ) {
[1016] Fix | Delete
continue;
[1017] Fix | Delete
}
[1018] Fix | Delete
[1019] Fix | Delete
$settings[ $field_id ] = $default_value;
[1020] Fix | Delete
}
[1021] Fix | Delete
[1022] Fix | Delete
return $settings;
[1023] Fix | Delete
[1024] Fix | Delete
}
[1025] Fix | Delete
[1026] Fix | Delete
/**
[1027] Fix | Delete
* Display analytics metabox
[1028] Fix | Delete
*
[1029] Fix | Delete
* @return void
[1030] Fix | Delete
*/
[1031] Fix | Delete
public static function render_analytics_meta_box() {
[1032] Fix | Delete
global $post;
[1033] Fix | Delete
[1034] Fix | Delete
$popup = pum_get_popup( $post->ID );
[1035] Fix | Delete
?>
[1036] Fix | Delete
<div id="pum-popup-analytics" class="pum-meta-box">
[1037] Fix | Delete
[1038] Fix | Delete
<?php do_action( 'pum_popup_analytics_metabox_before', $post->ID ); ?>
[1039] Fix | Delete
[1040] Fix | Delete
<?php
[1041] Fix | Delete
$opens = $popup->get_event_count( 'open' );
[1042] Fix | Delete
$conversions = $popup->get_event_count( 'conversion' );
[1043] Fix | Delete
$conversion_rate = $opens > 0 && $opens >= $conversions ? $conversions / $opens * 100 : 0;
[1044] Fix | Delete
?>
[1045] Fix | Delete
[1046] Fix | Delete
<div id="pum-popup-analytics" class="pum-popup-analytics">
[1047] Fix | Delete
[1048] Fix | Delete
<table class="form-table">
[1049] Fix | Delete
<tbody>
[1050] Fix | Delete
<tr>
[1051] Fix | Delete
<td><?php esc_html_e( 'Opens', 'popup-maker' ); ?></td>
[1052] Fix | Delete
<td><?php echo esc_html( $opens ); ?></td>
[1053] Fix | Delete
</tr>
[1054] Fix | Delete
<tr>
[1055] Fix | Delete
<td><?php esc_html_e( 'Conversions', 'popup-maker' ); ?></td>
[1056] Fix | Delete
<td><?php echo esc_html( $conversions ); ?></td>
[1057] Fix | Delete
</tr>
[1058] Fix | Delete
<tr>
[1059] Fix | Delete
<td><?php esc_html_e( 'Conversion Rate', 'popup-maker' ); ?></td>
[1060] Fix | Delete
<td><?php echo esc_html( round( $conversion_rate, 2 ) ); ?>%</td>
[1061] Fix | Delete
</tr>
[1062] Fix | Delete
<tr class="separator">
[1063] Fix | Delete
<td colspan="2">
[1064] Fix | Delete
<label> <input type="checkbox" name="popup_reset_counts" id="popup_reset_counts" value="1" />
[1065] Fix | Delete
<?php esc_html_e( 'Reset Counts', 'popup-maker' ); ?>
[1066] Fix | Delete
</label>
[1067] Fix | Delete
<?php
[1068] Fix | Delete
if ( ( $reset = $popup->get_last_count_reset() ) ) :
[1069] Fix | Delete
?>
[1070] Fix | Delete
<br />
[1071] Fix | Delete
<small>
[1072] Fix | Delete
<strong><?php esc_html_e( 'Last Reset', 'popup-maker' ); ?>:</strong> <?php echo esc_html( wp_date( 'm-d-Y H:i', $reset['timestamp'] ) ); ?>
[1073] Fix | Delete
<br /> <strong><?php esc_html_e( 'Previous Opens', 'popup-maker' ); ?>:</strong> <?php echo esc_html( $reset['opens'] ); ?>
[1074] Fix | Delete
[1075] Fix | Delete
<?php if ( $reset['conversions'] > 0 ) : ?>
[1076] Fix | Delete
<br />
[1077] Fix | Delete
<strong><?php esc_html_e( 'Previous Conversions', 'popup-maker' ); ?>:</strong> <?php echo esc_html( $reset['conversions'] ); ?>
[1078] Fix | Delete
<?php endif; ?>
[1079] Fix | Delete
[1080] Fix | Delete
<br /> <strong><?php esc_html_e( 'Lifetime Opens', 'popup-maker' ); ?>:</strong> <?php echo esc_html( $popup->get_event_count( 'open', 'total' ) ); ?>
[1081] Fix | Delete
[1082] Fix | Delete
<?php if ( $popup->get_event_count( 'conversion', 'total' ) > 0 ) : ?>
[1083] Fix | Delete
<br />
[1084] Fix | Delete
<strong><?php esc_html_e( 'Lifetime Conversions', 'popup-maker' ); ?>:</strong> <?php echo esc_html( $popup->get_event_count( 'conversion', 'total' ) ); ?>
[1085] Fix | Delete
<?php endif; ?>
[1086] Fix | Delete
</small>
[1087] Fix | Delete
<?php endif; ?>
[1088] Fix | Delete
</td>
[1089] Fix | Delete
</tr>
[1090] Fix | Delete
</tbody>
[1091] Fix | Delete
</table>
[1092] Fix | Delete
</div>
[1093] Fix | Delete
[1094] Fix | Delete
<?php do_action( 'pum_popup_analytics_metabox_after', $post->ID ); ?>
[1095] Fix | Delete
[1096] Fix | Delete
</div>
[1097] Fix | Delete
[1098] Fix | Delete
<?php
[1099] Fix | Delete
}
[1100] Fix | Delete
[1101] Fix | Delete
/**
[1102] Fix | Delete
* @param array $meta
[1103] Fix | Delete
*
[1104] Fix | Delete
* @return array
[1105] Fix | Delete
*/
[1106] Fix | Delete
public static function sanitize_meta( $meta = [] ) {
[1107] Fix | Delete
if ( ! empty( $meta ) ) {
[1108] Fix | Delete
[1109] Fix | Delete
foreach ( $meta as $key => $value ) {
[1110] Fix | Delete
[1111] Fix | Delete
if ( is_array( $value ) ) {
[1112] Fix | Delete
$meta[ $key ] = self::sanitize_meta( $value );
[1113] Fix | Delete
} elseif ( is_string( $value ) ) {
[1114] Fix | Delete
try {
[1115] Fix | Delete
$value = json_decode( stripslashes( $value ) );
[1116] Fix | Delete
if ( is_object( $value ) || is_array( $value ) ) {
[1117] Fix | Delete
$meta[ $key ] = PUM_Admin_Helpers::object_to_array( $value );
[1118] Fix | Delete
}
[1119] Fix | Delete
} catch ( Exception $e ) {
[1120] Fix | Delete
}
[1121] Fix | Delete
}
[1122] Fix | Delete
}
[1123] Fix | Delete
}
[1124] Fix | Delete
[1125] Fix | Delete
return $meta;
[1126] Fix | Delete
}
[1127] Fix | Delete
[1128] Fix | Delete
[1129] Fix | Delete
/**
[1130] Fix | Delete
* Ensures that the popups have unique slugs.
[1131] Fix | Delete
*
[1132] Fix | Delete
* @param $data
[1133] Fix | Delete
* @param $postarr
[1134] Fix | Delete
*
[1135] Fix | Delete
* @return mixed
[1136] Fix | Delete
*/
[1137] Fix | Delete
public static function set_slug( $data, $postarr ) {
[1138] Fix | Delete
if ( 'popup' === $data['post_type'] ) {
[1139] Fix | Delete
$data['post_name'] = wp_unique_post_slug( sanitize_title( popmake_post( 'popup_name' ) ), $postarr['ID'], $data['post_status'], $data['post_type'], $data['post_parent'] );
[1140] Fix | Delete
}
[1141] Fix | Delete
[1142] Fix | Delete
return $data;
[1143] Fix | Delete
}
[1144] Fix | Delete
[1145] Fix | Delete
[1146] Fix | Delete
/**
[1147] Fix | Delete
* Defines the custom columns and their order
[1148] Fix | Delete
*
[1149] Fix | Delete
* @param array $_columns Array of popup columns
[1150] Fix | Delete
*
[1151] Fix | Delete
* @return array $columns Updated array of popup columns for
[1152] Fix | Delete
* Post Type List Table
[1153] Fix | Delete
*/
[1154] Fix | Delete
public static function dashboard_columns( $_columns ) {
[1155] Fix | Delete
wp_enqueue_style( 'pum-admin-general' );
[1156] Fix | Delete
$columns = [
[1157] Fix | Delete
'cb' => '<input type="checkbox"/>',
[1158] Fix | Delete
'title' => __( 'Name', 'popup-maker' ),
[1159] Fix | Delete
'enabled' => __( 'Enabled', 'popup-maker' ),
[1160] Fix | Delete
'popup_title' => __( 'Title', 'popup-maker' ),
[1161] Fix | Delete
'class' => __( 'CSS Class', 'popup-maker' ),
[1162] Fix | Delete
'opens' => __( 'Opens', 'popup-maker' ),
[1163] Fix | Delete
'conversions' => __( 'Conversions', 'popup-maker' ),
[1164] Fix | Delete
'conversion_rate' => __( 'Conversion Rate', 'popup-maker' ),
[1165] Fix | Delete
];
[1166] Fix | Delete
[1167] Fix | Delete
// Add the date column preventing our own translation.
[1168] Fix | Delete
if ( ! empty( $_columns['date'] ) ) {
[1169] Fix | Delete
$columns['date'] = $_columns['date'];
[1170] Fix | Delete
}
[1171] Fix | Delete
[1172] Fix | Delete
if ( get_taxonomy( 'popup_tag' ) ) {
[1173] Fix | Delete
$columns['popup_tag'] = __( 'Tags', 'popup-maker' );
[1174] Fix | Delete
}
[1175] Fix | Delete
[1176] Fix | Delete
if ( get_taxonomy( 'popup_category' ) ) {
[1177] Fix | Delete
$columns['popup_category'] = __( 'Categories', 'popup-maker' );
[1178] Fix | Delete
}
[1179] Fix | Delete
[1180] Fix | Delete
// Deprecated filter.
[1181] Fix | Delete
$columns = apply_filters( 'popmake_popup_columns', $columns );
[1182] Fix | Delete
[1183] Fix | Delete
return apply_filters( 'pum_popup_columns', $columns );
[1184] Fix | Delete
}
[1185] Fix | Delete
[1186] Fix | Delete
/**
[1187] Fix | Delete
* Render Columns
[1188] Fix | Delete
*
[1189] Fix | Delete
* @param string $column_name Column name
[1190] Fix | Delete
* @param int $post_id (Post) ID
[1191] Fix | Delete
*/
[1192] Fix | Delete
public static function render_columns( $column_name, $post_id ) {
[1193] Fix | Delete
$post = get_post( $post_id );
[1194] Fix | Delete
if ( 'popup' === $post->post_type ) {
[1195] Fix | Delete
[1196] Fix | Delete
$popup = pum_get_popup( $post_id );
[1197] Fix | Delete
[1198] Fix | Delete
/**
[1199] Fix | Delete
* Uncomment if need to check for permissions on certain columns.
[1200] Fix | Delete
* *
[1201] Fix | Delete
* $post_type_object = get_post_type_object( $popup->post_type );
[1202] Fix | Delete
* $can_edit_post = current_user_can( $post_type_object->cap->edit_post, $popup->ID );
[1203] Fix | Delete
*/
[1204] Fix | Delete
[1205] Fix | Delete
switch ( $column_name ) {
[1206] Fix | Delete
case 'popup_title':
[1207] Fix | Delete
echo esc_html( $popup->get_title() );
[1208] Fix | Delete
break;
[1209] Fix | Delete
case 'enabled':
[1210] Fix | Delete
if ( 'publish' === $post->post_status ) {
[1211] Fix | Delete
$enabled = $popup->is_enabled();
[1212] Fix | Delete
$nonce = wp_create_nonce( "pum_save_enabled_state_{$popup->ID}" );
[1213] Fix | Delete
?>
[1214] Fix | Delete
<div class="pum-toggle-button">
[1215] Fix | Delete
<input id="pum-enabled-toggle-<?php echo esc_attr( $popup->ID ); ?>" type="checkbox" <?php checked( true, $enabled ); ?> class="pum-enabled-toggle-button" data-nonce="<?php echo esc_attr( $nonce ); ?>" data-popup-id="<?php echo esc_attr( $popup->ID ); ?>">
[1216] Fix | Delete
<label for="pum-enabled-toggle-<?php echo esc_attr( $popup->ID ); ?>" aria-label="Switch to enable popup"></label>
[1217] Fix | Delete
</div>
[1218] Fix | Delete
<?php
[1219] Fix | Delete
} else {
[1220] Fix | Delete
?>
[1221] Fix | Delete
<p>Popup not published</p>
[1222] Fix | Delete
<?php
[1223] Fix | Delete
}
[1224] Fix | Delete
break;
[1225] Fix | Delete
case 'popup_category':
[1226] Fix | Delete
echo get_the_term_list( $post_id, 'popup_category', '', ', ', '' );
[1227] Fix | Delete
break;
[1228] Fix | Delete
case 'popup_tag':
[1229] Fix | Delete
echo get_the_term_list( $post_id, 'popup_tag', '', ', ', '' );
[1230] Fix | Delete
break;
[1231] Fix | Delete
case 'class':
[1232] Fix | Delete
echo '<pre style="display:inline-block;margin:0;"><code>popmake-' . absint( $post_id ) . '</code></pre>';
[1233] Fix | Delete
break;
[1234] Fix | Delete
case 'opens':
[1235] Fix | Delete
if ( ! pum_extension_enabled( 'popup-analytics' ) ) {
[1236] Fix | Delete
echo esc_html( $popup->get_event_count( 'open' ) );
[1237] Fix | Delete
}
[1238] Fix | Delete
break;
[1239] Fix | Delete
case 'conversions':
[1240] Fix | Delete
if ( ! pum_extension_enabled( 'popup-analytics' ) ) {
[1241] Fix | Delete
echo esc_html( $popup->get_event_count( 'conversion' ) );
[1242] Fix | Delete
}
[1243] Fix | Delete
break;
[1244] Fix | Delete
case 'conversion_rate':
[1245] Fix | Delete
if ( ! pum_extension_enabled( 'popup-analytics' ) ) {
[1246] Fix | Delete
$opens = $popup->get_event_count( 'open' );
[1247] Fix | Delete
$conversions = $popup->get_event_count( 'conversion' );
[1248] Fix | Delete
[1249] Fix | Delete
if ( $opens > 0 && $opens >= $conversions ) {
[1250] Fix | Delete
$conversion_rate = round( $conversions / $opens * 100, 2 );
[1251] Fix | Delete
} else {
[1252] Fix | Delete
$conversion_rate = 0;
[1253] Fix | Delete
}
[1254] Fix | Delete
echo esc_html( $conversion_rate . '%' );
[1255] Fix | Delete
}
[1256] Fix | Delete
break;
[1257] Fix | Delete
}
[1258] Fix | Delete
}
[1259] Fix | Delete
}
[1260] Fix | Delete
[1261] Fix | Delete
/**
[1262] Fix | Delete
* Hide some of our columns by default
[1263] Fix | Delete
*
[1264] Fix | Delete
* @param array $hidden Array of IDs of columns hidden by default.
[1265] Fix | Delete
* @param WP_Screen $screen WP_Screen object of the current screen.
[1266] Fix | Delete
* @return array Updated $hidden
[1267] Fix | Delete
*/
[1268] Fix | Delete
public static function hide_columns( $hidden, $screen ) {
[1269] Fix | Delete
if ( isset( $screen->id ) && 'edit-popup' === $screen->id ) {
[1270] Fix | Delete
$hidden[] = 'popup_title';
[1271] Fix | Delete
$hidden[] = 'date';
[1272] Fix | Delete
}
[1273] Fix | Delete
return $hidden;
[1274] Fix | Delete
}
[1275] Fix | Delete
[1276] Fix | Delete
/**
[1277] Fix | Delete
* Registers the sortable columns in the list table
[1278] Fix | Delete
*
[1279] Fix | Delete
* @param array $columns Array of the columns
[1280] Fix | Delete
*
[1281] Fix | Delete
* @return array $columns Array of sortable columns
[1282] Fix | Delete
*/
[1283] Fix | Delete
public static function sortable_columns( $columns ) {
[1284] Fix | Delete
$columns['popup_title'] = 'popup_title';
[1285] Fix | Delete
$columns['opens'] = 'opens';
[1286] Fix | Delete
$columns['conversions'] = 'conversions';
[1287] Fix | Delete
[1288] Fix | Delete
return $columns;
[1289] Fix | Delete
}
[1290] Fix | Delete
[1291] Fix | Delete
/**
[1292] Fix | Delete
* Sorts Columns in the List Table
[1293] Fix | Delete
*
[1294] Fix | Delete
* @param array $vars Array of all the sort variables
[1295] Fix | Delete
*
[1296] Fix | Delete
* @return array $vars Array of all the sort variables
[1297] Fix | Delete
*/
[1298] Fix | Delete
public static function sort_columns( $vars ) {
[1299] Fix | Delete
// Check if we're viewing the "popup" post type
[1300] Fix | Delete
if ( isset( $vars['post_type'] ) && 'popup' === $vars['post_type'] ) {
[1301] Fix | Delete
// Check if 'orderby' is set to "name"
[1302] Fix | Delete
if ( isset( $vars['orderby'] ) ) {
[1303] Fix | Delete
switch ( $vars['orderby'] ) {
[1304] Fix | Delete
case 'popup_title':
[1305] Fix | Delete
$vars = array_merge(
[1306] Fix | Delete
$vars,
[1307] Fix | Delete
[
[1308] Fix | Delete
'meta_key' => 'popup_title',
[1309] Fix | Delete
'orderby' => 'meta_value',
[1310] Fix | Delete
]
[1311] Fix | Delete
);
[1312] Fix | Delete
break;
[1313] Fix | Delete
case 'opens':
[1314] Fix | Delete
if ( ! pum_extension_enabled( 'popup-analytics' ) ) {
[1315] Fix | Delete
$vars = array_merge(
[1316] Fix | Delete
$vars,
[1317] Fix | Delete
[
[1318] Fix | Delete
'meta_key' => 'popup_open_count',
[1319] Fix | Delete
'orderby' => 'meta_value_num',
[1320] Fix | Delete
]
[1321] Fix | Delete
);
[1322] Fix | Delete
}
[1323] Fix | Delete
break;
[1324] Fix | Delete
case 'conversions':
[1325] Fix | Delete
if ( ! pum_extension_enabled( 'popup-analytics' ) ) {
[1326] Fix | Delete
$vars = array_merge(
[1327] Fix | Delete
$vars,
[1328] Fix | Delete
[
[1329] Fix | Delete
'meta_key' => 'popup_conversion_count',
[1330] Fix | Delete
'orderby' => 'meta_value_num',
[1331] Fix | Delete
]
[1332] Fix | Delete
);
[1333] Fix | Delete
}
[1334] Fix | Delete
break;
[1335] Fix | Delete
}
[1336] Fix | Delete
}
[1337] Fix | Delete
}
[1338] Fix | Delete
[1339] Fix | Delete
return $vars;
[1340] Fix | Delete
}
[1341] Fix | Delete
[1342] Fix | Delete
/**
[1343] Fix | Delete
* Initialize sorting
[1344] Fix | Delete
*/
[1345] Fix | Delete
public static function load() {
[1346] Fix | Delete
add_filter( 'request', [ __CLASS__, 'sort_columns' ] );
[1347] Fix | Delete
}
[1348] Fix | Delete
[1349] Fix | Delete
/**
[1350] Fix | Delete
* Add Popup Filters
[1351] Fix | Delete
*
[1352] Fix | Delete
* Adds taxonomy drop down filters for popups.
[1353] Fix | Delete
*/
[1354] Fix | Delete
public static function add_popup_filters() {
[1355] Fix | Delete
global $typenow;
[1356] Fix | Delete
[1357] Fix | Delete
// Checks if the current post type is 'popup'
[1358] Fix | Delete
if ( 'popup' === $typenow ) {
[1359] Fix | Delete
[1360] Fix | Delete
if ( get_taxonomy( 'popup_category' ) ) {
[1361] Fix | Delete
$terms = get_terms( 'popup_category' );
[1362] Fix | Delete
if ( count( $terms ) > 0 ) {
[1363] Fix | Delete
echo "<select name='popup_category' id='popup_category' class='postform'>";
[1364] Fix | Delete
echo "<option value=''>" . __( 'Show all categories', 'popup-maker' ) . '</option>';
[1365] Fix | Delete
foreach ( $terms as $term ) {
[1366] Fix | Delete
$selected = isset( $_GET['popup_category'] ) && $_GET['popup_category'] === $term->slug ? 'selected="selected"' : '';
[1367] Fix | Delete
echo '<option value="' . esc_attr( $term->slug ) . '" ' . $selected . '>' . esc_html( $term->name ) . ' (' . $term->count . ')</option>';
[1368] Fix | Delete
}
[1369] Fix | Delete
echo '</select>';
[1370] Fix | Delete
}
[1371] Fix | Delete
}
[1372] Fix | Delete
[1373] Fix | Delete
if ( get_taxonomy( 'popup_tag' ) ) {
[1374] Fix | Delete
$terms = get_terms( 'popup_tag' );
[1375] Fix | Delete
if ( count( $terms ) > 0 ) {
[1376] Fix | Delete
echo "<select name='popup_tag' id='popup_tag' class='postform'>";
[1377] Fix | Delete
echo "<option value=''>" . __( 'Show all tags', 'popup-maker' ) . '</option>';
[1378] Fix | Delete
foreach ( $terms as $term ) {
[1379] Fix | Delete
$selected = isset( $_GET['popup_tag'] ) && $_GET['popup_tag'] === $term->slug ? 'selected="selected"' : '';
[1380] Fix | Delete
echo '<option value="' . esc_attr( $term->slug ) . '" ' . $selected . '>' . esc_html( $term->name ) . ' (' . $term->count . ')</option>';
[1381] Fix | Delete
}
[1382] Fix | Delete
echo '</select>';
[1383] Fix | Delete
}
[1384] Fix | Delete
}
[1385] Fix | Delete
}
[1386] Fix | Delete
[1387] Fix | Delete
}
[1388] Fix | Delete
[1389] Fix | Delete
/**
[1390] Fix | Delete
* Prepends Popup ID to the action row on All Popups
[1391] Fix | Delete
*
[1392] Fix | Delete
* @param array $actions The row actions.
[1393] Fix | Delete
* @param $post The post
[1394] Fix | Delete
*
[1395] Fix | Delete
* @return array The new actions.
[1396] Fix | Delete
*/
[1397] Fix | Delete
public static function add_id_row_actions( $actions, $post ) {
[1398] Fix | Delete
// Only adjust if we are dealing with our popups.
[1399] Fix | Delete
if ( 'popup' === $post->post_type ) {
[1400] Fix | Delete
return array_merge( [ 'id' => 'ID: ' . $post->ID ], $actions );
[1401] Fix | Delete
}
[1402] Fix | Delete
[1403] Fix | Delete
return $actions;
[1404] Fix | Delete
}
[1405] Fix | Delete
[1406] Fix | Delete
}
[1407] Fix | Delete
[1408] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function