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/clone/wp-conte.../plugins/wpforms-.../src/Admin/Payments/Views/Overview
File: Table.php
}
[1000] Fix | Delete
[1001] Fix | Delete
/**
[1002] Fix | Delete
* Get subscription status.
[1003] Fix | Delete
*
[1004] Fix | Delete
* @since 1.8.4
[1005] Fix | Delete
*
[1006] Fix | Delete
* @param array $item Payment item.
[1007] Fix | Delete
*
[1008] Fix | Delete
* @return string
[1009] Fix | Delete
*/
[1010] Fix | Delete
private function get_subscription_status( $item ) {
[1011] Fix | Delete
[1012] Fix | Delete
if ( ! in_array( $item['type'], [ 'subscription', 'renewal' ], true ) ) {
[1013] Fix | Delete
return '';
[1014] Fix | Delete
}
[1015] Fix | Delete
[1016] Fix | Delete
if ( $item['type'] === 'subscription' ) {
[1017] Fix | Delete
return $item['subscription_status'];
[1018] Fix | Delete
}
[1019] Fix | Delete
[1020] Fix | Delete
// For renewals, get subscription status from the parent subscription.
[1021] Fix | Delete
$parent_subscription = ( new Queries() )->get_subscription( $item['subscription_id'] );
[1022] Fix | Delete
[1023] Fix | Delete
return ! empty( $parent_subscription->subscription_status ) ? $parent_subscription->subscription_status : '';
[1024] Fix | Delete
}
[1025] Fix | Delete
[1026] Fix | Delete
/**
[1027] Fix | Delete
* Get payment title.
[1028] Fix | Delete
*
[1029] Fix | Delete
* @param array $item Payment item.
[1030] Fix | Delete
*
[1031] Fix | Delete
* @since 1.8.2
[1032] Fix | Delete
*
[1033] Fix | Delete
* @return string
[1034] Fix | Delete
*/
[1035] Fix | Delete
private function get_payment_title( array $item ) {
[1036] Fix | Delete
[1037] Fix | Delete
if ( empty( $item['title'] ) ) {
[1038] Fix | Delete
return '';
[1039] Fix | Delete
}
[1040] Fix | Delete
[1041] Fix | Delete
return ' - ' . $item['title'];
[1042] Fix | Delete
}
[1043] Fix | Delete
[1044] Fix | Delete
/**
[1045] Fix | Delete
* Get subscription icon.
[1046] Fix | Delete
*
[1047] Fix | Delete
* @since 1.8.2
[1048] Fix | Delete
*
[1049] Fix | Delete
* @param array $item Payment item.
[1050] Fix | Delete
*
[1051] Fix | Delete
* @return string
[1052] Fix | Delete
*/
[1053] Fix | Delete
private function get_subscription_status_icon( array $item ) {
[1054] Fix | Delete
[1055] Fix | Delete
if ( empty( $item['subscription_id'] ) ) {
[1056] Fix | Delete
return '';
[1057] Fix | Delete
}
[1058] Fix | Delete
[1059] Fix | Delete
return '<span class="dashicons dashicons-marker"></span>';
[1060] Fix | Delete
}
[1061] Fix | Delete
[1062] Fix | Delete
/**
[1063] Fix | Delete
* Get formatted amount from item.
[1064] Fix | Delete
*
[1065] Fix | Delete
* @since 1.8.2
[1066] Fix | Delete
*
[1067] Fix | Delete
* @param array $item Payment item.
[1068] Fix | Delete
*
[1069] Fix | Delete
* @return string
[1070] Fix | Delete
*/
[1071] Fix | Delete
private function get_formatted_amount_from_item( $item ) {
[1072] Fix | Delete
[1073] Fix | Delete
if ( empty( $item['total_amount'] ) ) {
[1074] Fix | Delete
return '';
[1075] Fix | Delete
}
[1076] Fix | Delete
[1077] Fix | Delete
return wpforms_format_amount( wpforms_sanitize_amount( $item['total_amount'], $item['currency'] ), true, $item['currency'] );
[1078] Fix | Delete
}
[1079] Fix | Delete
[1080] Fix | Delete
/**
[1081] Fix | Delete
* Get selectors which will be displayed over the bulk action menu.
[1082] Fix | Delete
*
[1083] Fix | Delete
* @since 1.8.2
[1084] Fix | Delete
*
[1085] Fix | Delete
* @return array
[1086] Fix | Delete
*/
[1087] Fix | Delete
protected function get_views() {
[1088] Fix | Delete
[1089] Fix | Delete
$base = remove_query_arg( [ 'status', 'paged' ] );
[1090] Fix | Delete
$is_trash_view = $this->is_trash_view();
[1091] Fix | Delete
[1092] Fix | Delete
$views = [
[1093] Fix | Delete
'all' => sprintf(
[1094] Fix | Delete
'<a href="%s"%s>%s <span class="count">(%d)</span></a>',
[1095] Fix | Delete
esc_url( $base ),
[1096] Fix | Delete
$this->is_current_view( 'all' ) ? ' class="current"' : '',
[1097] Fix | Delete
esc_html__( 'All', 'wpforms-lite' ),
[1098] Fix | Delete
(int) $this->counts['published']
[1099] Fix | Delete
),
[1100] Fix | Delete
];
[1101] Fix | Delete
[1102] Fix | Delete
// Iterate through the filterable statuses and add them to the "$views" array.
[1103] Fix | Delete
$views = array_merge( $views, $this->get_views_for_filterable_statuses( $base ) );
[1104] Fix | Delete
[1105] Fix | Delete
/** This filter is documented in \WPForms\Admin\Payments\Views\Overview\Table::display_tablenav(). */
[1106] Fix | Delete
if ( $this->counts['trash'] || $is_trash_view ) {
[1107] Fix | Delete
$views['trash'] = sprintf(
[1108] Fix | Delete
'<a href="%s"%s>%s <span class="count">(%d)</span></a>',
[1109] Fix | Delete
esc_url( add_query_arg( [ 'status' => 'trash' ], $base ) ),
[1110] Fix | Delete
$is_trash_view ? ' class="current"' : '',
[1111] Fix | Delete
esc_html__( 'Trash', 'wpforms-lite' ),
[1112] Fix | Delete
(int) $this->counts['trash']
[1113] Fix | Delete
);
[1114] Fix | Delete
}
[1115] Fix | Delete
[1116] Fix | Delete
return array_filter( $views );
[1117] Fix | Delete
}
[1118] Fix | Delete
[1119] Fix | Delete
/**
[1120] Fix | Delete
* Determine whether it is a passed view.
[1121] Fix | Delete
*
[1122] Fix | Delete
* @since 1.8.2
[1123] Fix | Delete
*
[1124] Fix | Delete
* @param string $view Current view to validate.
[1125] Fix | Delete
*
[1126] Fix | Delete
* @return bool
[1127] Fix | Delete
*/
[1128] Fix | Delete
private function is_current_view( $view ) {
[1129] Fix | Delete
[1130] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
[1131] Fix | Delete
if ( $view === 'trash' && isset( $_GET['status'] ) && $_GET['status'] === self::TRASH ) {
[1132] Fix | Delete
return true;
[1133] Fix | Delete
}
[1134] Fix | Delete
[1135] Fix | Delete
if ( ( $view === 'search' || $view === 'all' ) && Search::is_search() ) {
[1136] Fix | Delete
return ! isset( $_GET['status'] );
[1137] Fix | Delete
}
[1138] Fix | Delete
[1139] Fix | Delete
if ( ValueValidator::is_valid( $view, 'status' ) && isset( $_GET['status'] ) && $_GET['status'] === $view ) {
[1140] Fix | Delete
return true;
[1141] Fix | Delete
}
[1142] Fix | Delete
[1143] Fix | Delete
if ( $view === 'all' && ! isset( $_GET['status'] ) && ! Search::is_search() ) {
[1144] Fix | Delete
return true;
[1145] Fix | Delete
}
[1146] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
[1147] Fix | Delete
[1148] Fix | Delete
return false;
[1149] Fix | Delete
}
[1150] Fix | Delete
[1151] Fix | Delete
/**
[1152] Fix | Delete
* Get value provided in search field.
[1153] Fix | Delete
*
[1154] Fix | Delete
* @since 1.8.2
[1155] Fix | Delete
*
[1156] Fix | Delete
* @return string
[1157] Fix | Delete
*/
[1158] Fix | Delete
private function get_search_query() {
[1159] Fix | Delete
[1160] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated
[1161] Fix | Delete
return Search::is_search() ? sanitize_text_field( wp_unslash( $_GET['s'] ) ) : '';
[1162] Fix | Delete
}
[1163] Fix | Delete
[1164] Fix | Delete
/**
[1165] Fix | Delete
* Get search conditions.
[1166] Fix | Delete
*
[1167] Fix | Delete
* @since 1.8.2
[1168] Fix | Delete
*
[1169] Fix | Delete
* @return array
[1170] Fix | Delete
*/
[1171] Fix | Delete
private function get_search_conditions() {
[1172] Fix | Delete
[1173] Fix | Delete
if ( ! Search::is_search() ) {
[1174] Fix | Delete
return [];
[1175] Fix | Delete
}
[1176] Fix | Delete
[1177] Fix | Delete
return [
[1178] Fix | Delete
'search_where' => $this->get_search_where_key(),
[1179] Fix | Delete
'search_mode' => $this->get_search_mode_key(),
[1180] Fix | Delete
];
[1181] Fix | Delete
}
[1182] Fix | Delete
[1183] Fix | Delete
/**
[1184] Fix | Delete
* This function is responsible for determining whether the table items could be displayed.
[1185] Fix | Delete
*
[1186] Fix | Delete
* @since 1.8.4
[1187] Fix | Delete
*/
[1188] Fix | Delete
private function can_prepare_records() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh
[1189] Fix | Delete
[1190] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
[1191] Fix | Delete
if ( isset( $_GET['form_id'] ) && get_post_status( $_GET['form_id'] ) !== 'publish' ) {
[1192] Fix | Delete
wp_safe_redirect( Page::get_url() );
[1193] Fix | Delete
exit;
[1194] Fix | Delete
}
[1195] Fix | Delete
[1196] Fix | Delete
if ( isset( $_GET['status'] ) && $_GET['status'] !== $this->get_valid_status_from_request() ) {
[1197] Fix | Delete
wp_safe_redirect( Page::get_url() );
[1198] Fix | Delete
exit;
[1199] Fix | Delete
}
[1200] Fix | Delete
[1201] Fix | Delete
if ( isset( $_GET['coupon_id'] ) && ! wpforms()->get( 'payment_meta' )->is_valid_meta( 'coupon_id', absint( $_GET['coupon_id'] ) ) ) {
[1202] Fix | Delete
wp_safe_redirect( Page::get_url() );
[1203] Fix | Delete
exit;
[1204] Fix | Delete
}
[1205] Fix | Delete
[1206] Fix | Delete
// Validate the "type," "gateway," and "subscription_status" parameters.
[1207] Fix | Delete
foreach ( [ 'type', 'gateway', 'subscription_status' ] as $column_name ) {
[1208] Fix | Delete
// Leave the loop if the parameter is not set.
[1209] Fix | Delete
if ( empty( $_GET[ $column_name ] ) ) {
[1210] Fix | Delete
continue;
[1211] Fix | Delete
}
[1212] Fix | Delete
[1213] Fix | Delete
foreach ( explode( '|', $_GET[ $column_name ] ) as $value ) {
[1214] Fix | Delete
if ( ! ValueValidator::is_valid( $value, $column_name ) ) {
[1215] Fix | Delete
wp_safe_redirect( Page::get_url() );
[1216] Fix | Delete
exit;
[1217] Fix | Delete
}
[1218] Fix | Delete
}
[1219] Fix | Delete
}
[1220] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
[1221] Fix | Delete
}
[1222] Fix | Delete
[1223] Fix | Delete
/**
[1224] Fix | Delete
* Display table form's hidden fields.
[1225] Fix | Delete
*
[1226] Fix | Delete
* @since 1.8.2
[1227] Fix | Delete
*/
[1228] Fix | Delete
private function display_hidden_fields() {
[1229] Fix | Delete
?>
[1230] Fix | Delete
<input type="hidden" name="page" value="wpforms-payments">
[1231] Fix | Delete
<input type="hidden" name="paged" value="1">
[1232] Fix | Delete
<?php
[1233] Fix | Delete
[1234] Fix | Delete
$this->display_status_hidden_field();
[1235] Fix | Delete
$this->display_order_hidden_fields();
[1236] Fix | Delete
$this->display_coupon_id_hidden_field();
[1237] Fix | Delete
$this->display_form_id_hidden_field();
[1238] Fix | Delete
}
[1239] Fix | Delete
[1240] Fix | Delete
/**
[1241] Fix | Delete
* Display hidden field with status value.
[1242] Fix | Delete
*
[1243] Fix | Delete
* @since 1.8.2
[1244] Fix | Delete
*/
[1245] Fix | Delete
private function display_status_hidden_field() {
[1246] Fix | Delete
[1247] Fix | Delete
$status = $this->get_valid_status_from_request();
[1248] Fix | Delete
[1249] Fix | Delete
// Bail early if status is not valid.
[1250] Fix | Delete
if ( ! $status ) {
[1251] Fix | Delete
return;
[1252] Fix | Delete
}
[1253] Fix | Delete
[1254] Fix | Delete
// Output the hidden field.
[1255] Fix | Delete
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
[1256] Fix | Delete
echo wpforms_render(
[1257] Fix | Delete
'admin/payments/hidden-field',
[1258] Fix | Delete
[
[1259] Fix | Delete
'name' => 'status',
[1260] Fix | Delete
'value' => $status,
[1261] Fix | Delete
],
[1262] Fix | Delete
true
[1263] Fix | Delete
);
[1264] Fix | Delete
}
[1265] Fix | Delete
[1266] Fix | Delete
/**
[1267] Fix | Delete
* Display hidden fields with order and orderby values.
[1268] Fix | Delete
*
[1269] Fix | Delete
* @since 1.8.2
[1270] Fix | Delete
*/
[1271] Fix | Delete
private function display_order_hidden_fields() {
[1272] Fix | Delete
[1273] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended
[1274] Fix | Delete
foreach ( [ 'orderby', 'order' ] as $param ) {
[1275] Fix | Delete
// Skip if param is not set.
[1276] Fix | Delete
if ( empty( $_GET[ $param ] ) ) {
[1277] Fix | Delete
continue;
[1278] Fix | Delete
}
[1279] Fix | Delete
[1280] Fix | Delete
// Output the hidden field.
[1281] Fix | Delete
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
[1282] Fix | Delete
echo wpforms_render(
[1283] Fix | Delete
'admin/payments/hidden-field',
[1284] Fix | Delete
[
[1285] Fix | Delete
'name' => $param,
[1286] Fix | Delete
'value' => sanitize_text_field( wp_unslash( $_GET[ $param ] ) ),
[1287] Fix | Delete
],
[1288] Fix | Delete
true
[1289] Fix | Delete
);
[1290] Fix | Delete
}
[1291] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended
[1292] Fix | Delete
}
[1293] Fix | Delete
[1294] Fix | Delete
/**
[1295] Fix | Delete
* Display hidden field with coupon ID value.
[1296] Fix | Delete
*
[1297] Fix | Delete
* @since 1.8.4
[1298] Fix | Delete
*/
[1299] Fix | Delete
private function display_coupon_id_hidden_field() {
[1300] Fix | Delete
[1301] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended
[1302] Fix | Delete
if ( empty( $_GET['coupon_id'] ) ) {
[1303] Fix | Delete
return;
[1304] Fix | Delete
}
[1305] Fix | Delete
[1306] Fix | Delete
// Output the hidden field.
[1307] Fix | Delete
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
[1308] Fix | Delete
echo wpforms_render(
[1309] Fix | Delete
'admin/payments/hidden-field',
[1310] Fix | Delete
[
[1311] Fix | Delete
'name' => 'coupon_id',
[1312] Fix | Delete
'value' => absint( $_GET['coupon_id'] ),
[1313] Fix | Delete
],
[1314] Fix | Delete
true
[1315] Fix | Delete
);
[1316] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended
[1317] Fix | Delete
}
[1318] Fix | Delete
[1319] Fix | Delete
/**
[1320] Fix | Delete
* Display hidden field with form ID value.
[1321] Fix | Delete
*
[1322] Fix | Delete
* @since 1.8.4
[1323] Fix | Delete
*/
[1324] Fix | Delete
private function display_form_id_hidden_field() {
[1325] Fix | Delete
[1326] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended
[1327] Fix | Delete
if ( empty( $_GET['form_id'] ) ) {
[1328] Fix | Delete
return;
[1329] Fix | Delete
}
[1330] Fix | Delete
[1331] Fix | Delete
// Output the hidden field.
[1332] Fix | Delete
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
[1333] Fix | Delete
echo wpforms_render(
[1334] Fix | Delete
'admin/payments/hidden-field',
[1335] Fix | Delete
[
[1336] Fix | Delete
'name' => 'form_id',
[1337] Fix | Delete
'value' => absint( $_GET['form_id'] ),
[1338] Fix | Delete
],
[1339] Fix | Delete
true
[1340] Fix | Delete
);
[1341] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended
[1342] Fix | Delete
}
[1343] Fix | Delete
[1344] Fix | Delete
/**
[1345] Fix | Delete
* Get the coupon name from the coupon info.
[1346] Fix | Delete
*
[1347] Fix | Delete
* @since 1.8.4
[1348] Fix | Delete
*
[1349] Fix | Delete
* @param string $coupon_info Coupon information.
[1350] Fix | Delete
*
[1351] Fix | Delete
* @return string
[1352] Fix | Delete
*/
[1353] Fix | Delete
private function get_coupon_name_by_info( $coupon_info ) {
[1354] Fix | Delete
[1355] Fix | Delete
// Extract the coupon code from the coupon info using regex.
[1356] Fix | Delete
if ( preg_match( '/^(.+)/i', $coupon_info, $coupon_code ) ) {
[1357] Fix | Delete
return $coupon_code[0];
[1358] Fix | Delete
}
[1359] Fix | Delete
[1360] Fix | Delete
return Helpers::get_placeholder_na_text();
[1361] Fix | Delete
}
[1362] Fix | Delete
[1363] Fix | Delete
/**
[1364] Fix | Delete
* Get the filterable statuses views for the overview table.
[1365] Fix | Delete
*
[1366] Fix | Delete
* @since 1.8.4
[1367] Fix | Delete
*
[1368] Fix | Delete
* @param string $base Base URL for the view links.
[1369] Fix | Delete
*
[1370] Fix | Delete
* @return array
[1371] Fix | Delete
*/
[1372] Fix | Delete
private function get_views_for_filterable_statuses( $base ) {
[1373] Fix | Delete
[1374] Fix | Delete
$views = [];
[1375] Fix | Delete
$statuses = ValueValidator::get_allowed_one_time_statuses();
[1376] Fix | Delete
[1377] Fix | Delete
// Remove the "Partially Refunded" status from the views.
[1378] Fix | Delete
unset( $statuses['partrefund'] );
[1379] Fix | Delete
[1380] Fix | Delete
foreach ( $statuses as $status => $label ) {
[1381] Fix | Delete
// Skip if the count is zero and the view is not the current status.
[1382] Fix | Delete
if ( ! $this->counts[ $status ] && ! $this->is_current_view( $status ) ) {
[1383] Fix | Delete
continue;
[1384] Fix | Delete
}
[1385] Fix | Delete
[1386] Fix | Delete
// Add the view link to the $views array with the status as the key.
[1387] Fix | Delete
$views[ $status ] = sprintf(
[1388] Fix | Delete
'<a href="%s"%s>%s <span class="count">(%d)</span></a>',
[1389] Fix | Delete
esc_url( add_query_arg( [ 'status' => $status ], $base ) ),
[1390] Fix | Delete
$this->is_current_view( $status ) ? ' class="current"' : '',
[1391] Fix | Delete
esc_html( $label ),
[1392] Fix | Delete
(int) $this->counts[ $status ]
[1393] Fix | Delete
);
[1394] Fix | Delete
}
[1395] Fix | Delete
[1396] Fix | Delete
return $views;
[1397] Fix | Delete
}
[1398] Fix | Delete
}
[1399] Fix | Delete
[1400] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function