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/wpforms-.../src/Admin/Payments/Views/Overview
File: Table.php
[500] Fix | Delete
return [
[501] Fix | Delete
'trash' => esc_html__( 'Move to Trash', 'wpforms-lite' ),
[502] Fix | Delete
];
[503] Fix | Delete
}
[504] Fix | Delete
[505] Fix | Delete
/**
[506] Fix | Delete
* Generates the table navigation above or below the table.
[507] Fix | Delete
*
[508] Fix | Delete
* @since 1.8.2
[509] Fix | Delete
*
[510] Fix | Delete
* @param string $which The location of the bulk actions: 'top' or 'bottom'.
[511] Fix | Delete
*/
[512] Fix | Delete
protected function display_tablenav( $which ) {
[513] Fix | Delete
[514] Fix | Delete
if ( $this->has_items() ) {
[515] Fix | Delete
parent::display_tablenav( $which );
[516] Fix | Delete
[517] Fix | Delete
return;
[518] Fix | Delete
}
[519] Fix | Delete
[520] Fix | Delete
echo '<div class="tablenav ' . esc_attr( $which ) . '">';
[521] Fix | Delete
[522] Fix | Delete
if ( $this->is_trash_view() ) {
[523] Fix | Delete
echo '<div class="alignleft actions bulkactions">';
[524] Fix | Delete
$this->bulk_actions();
[525] Fix | Delete
echo '</div>';
[526] Fix | Delete
}
[527] Fix | Delete
[528] Fix | Delete
$this->extra_tablenav( $which );
[529] Fix | Delete
echo '<br class="clear" />';
[530] Fix | Delete
echo '</div>';
[531] Fix | Delete
}
[532] Fix | Delete
[533] Fix | Delete
/**
[534] Fix | Delete
* List of CSS classes for the "WP_List_Table" table tag.
[535] Fix | Delete
*
[536] Fix | Delete
* @global string $mode List table view mode.
[537] Fix | Delete
*
[538] Fix | Delete
* @since 1.8.2
[539] Fix | Delete
*
[540] Fix | Delete
* @return array
[541] Fix | Delete
*/
[542] Fix | Delete
protected function get_table_classes() {
[543] Fix | Delete
[544] Fix | Delete
global $mode;
[545] Fix | Delete
[546] Fix | Delete
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
[547] Fix | Delete
$mode = get_user_setting( 'posts_list_mode', 'list' );
[548] Fix | Delete
$mode_class = esc_attr( 'table-view-' . $mode );
[549] Fix | Delete
$classes = [
[550] Fix | Delete
'widefat',
[551] Fix | Delete
'striped',
[552] Fix | Delete
'wpforms-table-list',
[553] Fix | Delete
'wpforms-table-list-payments',
[554] Fix | Delete
$mode_class,
[555] Fix | Delete
];
[556] Fix | Delete
[557] Fix | Delete
// For styling purposes, we'll add a dedicated class name for determining the number of visible columns.
[558] Fix | Delete
// The ideal threshold for applying responsive styling is set at "5" columns based on the need for "Tablet" view.
[559] Fix | Delete
$columns_class = $this->get_column_count() > 5 ? 'many' : 'few';
[560] Fix | Delete
[561] Fix | Delete
$classes[] = "has-{$columns_class}-columns";
[562] Fix | Delete
[563] Fix | Delete
return $classes;
[564] Fix | Delete
}
[565] Fix | Delete
[566] Fix | Delete
/**
[567] Fix | Delete
* Get valid status from request.
[568] Fix | Delete
*
[569] Fix | Delete
* @since 1.8.2
[570] Fix | Delete
*
[571] Fix | Delete
* @return string
[572] Fix | Delete
*/
[573] Fix | Delete
private function get_valid_status_from_request() {
[574] Fix | Delete
[575] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
[576] Fix | Delete
return ! empty( $_REQUEST['status'] ) && ( ValueValidator::is_valid( $_REQUEST['status'], 'status' ) || $_REQUEST['status'] === self::TRASH ) ? $_REQUEST['status'] : '';
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
/**
[580] Fix | Delete
* Get number of payments for the current status.
[581] Fix | Delete
* Note that this function also validates the status internally.
[582] Fix | Delete
*
[583] Fix | Delete
* @since 1.8.4
[584] Fix | Delete
*
[585] Fix | Delete
* @return string
[586] Fix | Delete
*/
[587] Fix | Delete
private function get_valid_status_count_from_request() {
[588] Fix | Delete
[589] Fix | Delete
// Retrieve the current status.
[590] Fix | Delete
$current_status = $this->get_valid_status_from_request();
[591] Fix | Delete
[592] Fix | Delete
return $current_status && isset( $this->counts[ $current_status ] ) ? $this->counts[ $current_status ] : $this->counts['total'];
[593] Fix | Delete
}
[594] Fix | Delete
[595] Fix | Delete
/**
[596] Fix | Delete
* Get search where value.
[597] Fix | Delete
*
[598] Fix | Delete
* @since 1.8.2
[599] Fix | Delete
*
[600] Fix | Delete
* @param string $search_key Search where key.
[601] Fix | Delete
*
[602] Fix | Delete
* @return string Return default search where value if not valid key provided.
[603] Fix | Delete
*/
[604] Fix | Delete
private function get_search_where( $search_key ) {
[605] Fix | Delete
[606] Fix | Delete
$allowed_values = $this->get_allowed_search_where();
[607] Fix | Delete
[608] Fix | Delete
return $search_key && isset( $allowed_values[ $search_key ] ) ? $allowed_values[ $search_key ] : $allowed_values[ Search::TITLE ];
[609] Fix | Delete
}
[610] Fix | Delete
[611] Fix | Delete
/**
[612] Fix | Delete
* Get search where key.
[613] Fix | Delete
*
[614] Fix | Delete
* @since 1.8.2
[615] Fix | Delete
*
[616] Fix | Delete
* @return string
[617] Fix | Delete
*/
[618] Fix | Delete
private function get_search_where_key() {
[619] Fix | Delete
[620] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
[621] Fix | Delete
$where_key = isset( $_GET['search_where'] ) ? sanitize_key( $_GET['search_where'] ) : '';
[622] Fix | Delete
[623] Fix | Delete
return isset( $this->get_allowed_search_where()[ $where_key ] ) ? $where_key : Search::TITLE;
[624] Fix | Delete
}
[625] Fix | Delete
[626] Fix | Delete
/**
[627] Fix | Delete
* Get allowed search where values.
[628] Fix | Delete
*
[629] Fix | Delete
* @since 1.8.2
[630] Fix | Delete
*
[631] Fix | Delete
* @return array
[632] Fix | Delete
*/
[633] Fix | Delete
private function get_allowed_search_where() {
[634] Fix | Delete
[635] Fix | Delete
static $search_values;
[636] Fix | Delete
[637] Fix | Delete
if ( ! $search_values ) {
[638] Fix | Delete
[639] Fix | Delete
$search_values = [
[640] Fix | Delete
Search::TITLE => __( 'Payment Title', 'wpforms-lite' ),
[641] Fix | Delete
Search::TRANSACTION_ID => __( 'Transaction ID', 'wpforms-lite' ),
[642] Fix | Delete
Search::EMAIL => __( 'Customer Email', 'wpforms-lite' ),
[643] Fix | Delete
Search::SUBSCRIPTION_ID => __( 'Subscription ID', 'wpforms-lite' ),
[644] Fix | Delete
Search::CREDIT_CARD => __( 'Last 4 digits of credit card', 'wpforms-lite' ),
[645] Fix | Delete
Search::ANY => __( 'Any payment field', 'wpforms-lite' ),
[646] Fix | Delete
];
[647] Fix | Delete
}
[648] Fix | Delete
[649] Fix | Delete
return $search_values;
[650] Fix | Delete
}
[651] Fix | Delete
[652] Fix | Delete
/**
[653] Fix | Delete
* Get search where value.
[654] Fix | Delete
*
[655] Fix | Delete
* @since 1.8.2
[656] Fix | Delete
*
[657] Fix | Delete
* @param string $mode_key Search mode key.
[658] Fix | Delete
*
[659] Fix | Delete
* @return string Return default search mode value if not valid key provided.
[660] Fix | Delete
*/
[661] Fix | Delete
private function get_search_mode( $mode_key ) {
[662] Fix | Delete
[663] Fix | Delete
$allowed_modes = $this->get_allowed_search_modes();
[664] Fix | Delete
[665] Fix | Delete
return $mode_key && isset( $allowed_modes[ $mode_key ] ) ? $allowed_modes[ $mode_key ] : $allowed_modes[ Search::MODE_EQUALS ];
[666] Fix | Delete
}
[667] Fix | Delete
[668] Fix | Delete
/**
[669] Fix | Delete
* Get search mode key.
[670] Fix | Delete
*
[671] Fix | Delete
* @since 1.8.2
[672] Fix | Delete
*
[673] Fix | Delete
* @return string
[674] Fix | Delete
*/
[675] Fix | Delete
private function get_search_mode_key() {
[676] Fix | Delete
[677] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
[678] Fix | Delete
$where_mode = isset( $_GET['search_mode'] ) ? sanitize_key( $_GET['search_mode'] ) : '';
[679] Fix | Delete
[680] Fix | Delete
return isset( $this->get_allowed_search_modes()[ $where_mode ] ) ? $where_mode : Search::MODE_CONTAINS;
[681] Fix | Delete
}
[682] Fix | Delete
[683] Fix | Delete
/**
[684] Fix | Delete
* Get allowed search mode params.
[685] Fix | Delete
*
[686] Fix | Delete
* @since 1.8.2
[687] Fix | Delete
*
[688] Fix | Delete
* @return array
[689] Fix | Delete
*/
[690] Fix | Delete
private function get_allowed_search_modes() {
[691] Fix | Delete
[692] Fix | Delete
static $search_modes;
[693] Fix | Delete
[694] Fix | Delete
if ( ! $search_modes ) {
[695] Fix | Delete
[696] Fix | Delete
$search_modes = [
[697] Fix | Delete
Search::MODE_CONTAINS => __( 'contains', 'wpforms-lite' ),
[698] Fix | Delete
Search::MODE_EQUALS => __( 'equals', 'wpforms-lite' ),
[699] Fix | Delete
Search::MODE_STARTS => __( 'starts with', 'wpforms-lite' ),
[700] Fix | Delete
];
[701] Fix | Delete
}
[702] Fix | Delete
[703] Fix | Delete
return $search_modes;
[704] Fix | Delete
}
[705] Fix | Delete
[706] Fix | Delete
/**
[707] Fix | Delete
* Prepare counters.
[708] Fix | Delete
*
[709] Fix | Delete
* @since 1.8.2
[710] Fix | Delete
*/
[711] Fix | Delete
private function setup_counts() {
[712] Fix | Delete
[713] Fix | Delete
// Define the general views with their respective arguments.
[714] Fix | Delete
$views = [
[715] Fix | Delete
'published' => [
[716] Fix | Delete
'is_published' => 1,
[717] Fix | Delete
'status' => '',
[718] Fix | Delete
],
[719] Fix | Delete
'trash' => [
[720] Fix | Delete
'is_published' => 0,
[721] Fix | Delete
'status' => '',
[722] Fix | Delete
],
[723] Fix | Delete
];
[724] Fix | Delete
[725] Fix | Delete
// Generate filterable status views with their respective arguments.
[726] Fix | Delete
foreach ( ValueValidator::get_allowed_one_time_statuses() as $status => $label ) {
[727] Fix | Delete
$views[ $status ] = [
[728] Fix | Delete
'is_published' => 1,
[729] Fix | Delete
'status' => $status,
[730] Fix | Delete
];
[731] Fix | Delete
}
[732] Fix | Delete
[733] Fix | Delete
// Calculate the counts for each view and store them in the $this->counts array.
[734] Fix | Delete
foreach ( $views as $status => $status_args ) {
[735] Fix | Delete
$this->counts[ $status ] = wpforms()->get( 'payment_queries' )->count_all( array_merge( $this->table_query_args, $status_args ) );
[736] Fix | Delete
}
[737] Fix | Delete
[738] Fix | Delete
// If the current view is the trash view, set the 'total' count to the 'trash' count.
[739] Fix | Delete
if ( $this->is_trash_view() ) {
[740] Fix | Delete
$this->counts['total'] = $this->counts['trash'];
[741] Fix | Delete
[742] Fix | Delete
return;
[743] Fix | Delete
}
[744] Fix | Delete
[745] Fix | Delete
// Otherwise, set the 'total' count to the 'published' count.
[746] Fix | Delete
$this->counts['total'] = $this->counts['published'];
[747] Fix | Delete
}
[748] Fix | Delete
[749] Fix | Delete
/**
[750] Fix | Delete
* Get the orderby value.
[751] Fix | Delete
*
[752] Fix | Delete
* @since 1.8.2
[753] Fix | Delete
*
[754] Fix | Delete
* @return string
[755] Fix | Delete
*/
[756] Fix | Delete
private function get_order_by() {
[757] Fix | Delete
[758] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended
[759] Fix | Delete
if ( ! isset( $_GET['orderby'] ) ) {
[760] Fix | Delete
return 'id';
[761] Fix | Delete
}
[762] Fix | Delete
[763] Fix | Delete
if ( $_GET['orderby'] === 'date' ) {
[764] Fix | Delete
return 'date_updated_gmt';
[765] Fix | Delete
}
[766] Fix | Delete
[767] Fix | Delete
if ( $_GET['orderby'] === 'total' ) {
[768] Fix | Delete
return 'total_amount';
[769] Fix | Delete
}
[770] Fix | Delete
[771] Fix | Delete
return 'id';
[772] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended
[773] Fix | Delete
}
[774] Fix | Delete
[775] Fix | Delete
/**
[776] Fix | Delete
* Get payment column value.
[777] Fix | Delete
*
[778] Fix | Delete
* @since 1.8.2
[779] Fix | Delete
*
[780] Fix | Delete
* @param array $item Payment item.
[781] Fix | Delete
*
[782] Fix | Delete
* @return string
[783] Fix | Delete
*/
[784] Fix | Delete
private function get_column_title( array $item ) {
[785] Fix | Delete
[786] Fix | Delete
$title = $this->get_payment_title( $item );
[787] Fix | Delete
$na_status = empty( $title ) ? sprintf( '<span class="payment-title-is-empty">- %s</span>', Helpers::get_placeholder_na_text() ) : '';
[788] Fix | Delete
[789] Fix | Delete
if ( ! $item['is_published'] ) {
[790] Fix | Delete
return sprintf( '<span>#%1$d %2$s</span> %3$s', $item['id'], esc_html( $title ), $na_status );
[791] Fix | Delete
}
[792] Fix | Delete
[793] Fix | Delete
$single_url = add_query_arg(
[794] Fix | Delete
[
[795] Fix | Delete
'page' => 'wpforms-payments',
[796] Fix | Delete
'view' => 'payment',
[797] Fix | Delete
'payment_id' => absint( $item['id'] ),
[798] Fix | Delete
],
[799] Fix | Delete
admin_url( 'admin.php' )
[800] Fix | Delete
);
[801] Fix | Delete
[802] Fix | Delete
return sprintf( '<a href="%1$s">#%2$d %3$s</a> %4$s', esc_url( $single_url ), $item['id'], esc_html( $title ), $na_status );
[803] Fix | Delete
}
[804] Fix | Delete
[805] Fix | Delete
/**
[806] Fix | Delete
* Get date column value.
[807] Fix | Delete
*
[808] Fix | Delete
* @since 1.8.2
[809] Fix | Delete
*
[810] Fix | Delete
* @param array $item Payment item.
[811] Fix | Delete
*
[812] Fix | Delete
* @return string
[813] Fix | Delete
*/
[814] Fix | Delete
private function get_column_date( $item ) {
[815] Fix | Delete
[816] Fix | Delete
$date = $item['date_updated_gmt'];
[817] Fix | Delete
$timestamp = strtotime( $date );
[818] Fix | Delete
[819] Fix | Delete
/* translators: %s - relative time difference, e.g. "5 minutes", "12 days". */
[820] Fix | Delete
$human = sprintf( esc_html__( '%s ago', 'wpforms-lite' ), human_time_diff( $timestamp ) );
[821] Fix | Delete
[822] Fix | Delete
return sprintf( '<span title="%s">%s</span>', gmdate( 'Y-m-d H:i', $timestamp ), $human );
[823] Fix | Delete
}
[824] Fix | Delete
[825] Fix | Delete
/**
[826] Fix | Delete
* Get gateway column value.
[827] Fix | Delete
*
[828] Fix | Delete
* @since 1.8.2
[829] Fix | Delete
*
[830] Fix | Delete
* @param array $item Payment item.
[831] Fix | Delete
*
[832] Fix | Delete
* @return string
[833] Fix | Delete
*/
[834] Fix | Delete
private function get_column_gateway( array $item ) {
[835] Fix | Delete
[836] Fix | Delete
if ( ! isset( $item['gateway'] ) || ! ValueValidator::is_valid( $item['gateway'], 'gateway' ) ) {
[837] Fix | Delete
return '';
[838] Fix | Delete
}
[839] Fix | Delete
[840] Fix | Delete
return ValueValidator::get_allowed_gateways()[ $item['gateway'] ];
[841] Fix | Delete
}
[842] Fix | Delete
[843] Fix | Delete
/**
[844] Fix | Delete
* Get total column value.
[845] Fix | Delete
*
[846] Fix | Delete
* @since 1.8.2
[847] Fix | Delete
*
[848] Fix | Delete
* @param array $item Payment item.
[849] Fix | Delete
*
[850] Fix | Delete
* @return string
[851] Fix | Delete
*/
[852] Fix | Delete
private function get_column_total( array $item ) {
[853] Fix | Delete
[854] Fix | Delete
return esc_html( $this->get_formatted_amount_from_item( $item ) );
[855] Fix | Delete
}
[856] Fix | Delete
[857] Fix | Delete
/**
[858] Fix | Delete
* Get form column value.
[859] Fix | Delete
*
[860] Fix | Delete
* @since 1.8.2
[861] Fix | Delete
*
[862] Fix | Delete
* @param array $item Payment item.
[863] Fix | Delete
*
[864] Fix | Delete
* @return string
[865] Fix | Delete
*/
[866] Fix | Delete
private function get_column_form( array $item ) {
[867] Fix | Delete
[868] Fix | Delete
// Display "N/A" placeholder text if the form is not found or not published.
[869] Fix | Delete
if ( empty( $item['form_id'] ) || get_post_status( $item['form_id'] ) !== 'publish' ) {
[870] Fix | Delete
return Helpers::get_placeholder_na_text();
[871] Fix | Delete
}
[872] Fix | Delete
[873] Fix | Delete
$form = wpforms()->get( 'form' )->get( $item['form_id'] );
[874] Fix | Delete
[875] Fix | Delete
if ( ! $form || $form->post_status !== 'publish' ) {
[876] Fix | Delete
return Helpers::get_placeholder_na_text();
[877] Fix | Delete
}
[878] Fix | Delete
[879] Fix | Delete
// Display the form name with a link to the form builder.
[880] Fix | Delete
$name = ! empty( $form->post_title ) ? $form->post_title : $form->post_name;
[881] Fix | Delete
$url = add_query_arg(
[882] Fix | Delete
'form_id',
[883] Fix | Delete
absint( $form->ID ),
[884] Fix | Delete
remove_query_arg( 'paged' )
[885] Fix | Delete
);
[886] Fix | Delete
[887] Fix | Delete
return sprintf( '<a href="%s">%s</a>', esc_url( $url ), wp_kses_post( $name ) );
[888] Fix | Delete
}
[889] Fix | Delete
[890] Fix | Delete
/**
[891] Fix | Delete
* Get status column value.
[892] Fix | Delete
*
[893] Fix | Delete
* @since 1.8.2
[894] Fix | Delete
*
[895] Fix | Delete
* @param array $item Payment item.
[896] Fix | Delete
*
[897] Fix | Delete
* @return string
[898] Fix | Delete
*/
[899] Fix | Delete
private function get_column_status( array $item ) {
[900] Fix | Delete
[901] Fix | Delete
if ( ! isset( $item['status'] ) || ! ValueValidator::is_valid( $item['status'], 'status' ) ) {
[902] Fix | Delete
return Helpers::get_placeholder_na_text();
[903] Fix | Delete
}
[904] Fix | Delete
[905] Fix | Delete
return sprintf(
[906] Fix | Delete
wp_kses(
[907] Fix | Delete
'<span class="wpforms-payment-status status-%1$s">%2$s</span>',
[908] Fix | Delete
[
[909] Fix | Delete
'span' => [
[910] Fix | Delete
'class' => [],
[911] Fix | Delete
],
[912] Fix | Delete
'i' => [
[913] Fix | Delete
'class' => [],
[914] Fix | Delete
'title' => [],
[915] Fix | Delete
],
[916] Fix | Delete
]
[917] Fix | Delete
),
[918] Fix | Delete
strtolower( $item['status'] ),
[919] Fix | Delete
$item['status'] === 'partrefund' ? __( '% Refunded', 'wpforms-lite' ) : ValueValidator::get_allowed_statuses()[ $item['status'] ]
[920] Fix | Delete
);
[921] Fix | Delete
}
[922] Fix | Delete
[923] Fix | Delete
/**
[924] Fix | Delete
* Get subscription column value.
[925] Fix | Delete
*
[926] Fix | Delete
* @since 1.8.2
[927] Fix | Delete
*
[928] Fix | Delete
* @param array $item Payment item.
[929] Fix | Delete
*
[930] Fix | Delete
* @return string
[931] Fix | Delete
*/
[932] Fix | Delete
private function get_column_subscription( array $item ) {
[933] Fix | Delete
[934] Fix | Delete
if ( $item['type'] === self::ONE_TIME ) {
[935] Fix | Delete
return Helpers::get_placeholder_na_text();
[936] Fix | Delete
}
[937] Fix | Delete
[938] Fix | Delete
$amount = $this->get_formatted_amount_from_item( $item );
[939] Fix | Delete
$description = Helpers::get_subscription_description( $item['id'], $amount );
[940] Fix | Delete
$status = $this->get_subscription_status( $item );
[941] Fix | Delete
[942] Fix | Delete
return sprintf(
[943] Fix | Delete
'<span class="wpforms-subscription-status status-%1$s" title="%2$s">%3$s</span>',
[944] Fix | Delete
sanitize_html_class( $status ),
[945] Fix | Delete
$status ? ValueValidator::get_allowed_subscription_statuses()[ $status ] : '',
[946] Fix | Delete
$description
[947] Fix | Delete
);
[948] Fix | Delete
}
[949] Fix | Delete
[950] Fix | Delete
/**
[951] Fix | Delete
* Get type column value.
[952] Fix | Delete
*
[953] Fix | Delete
* @since 1.8.2
[954] Fix | Delete
*
[955] Fix | Delete
* @param array $item Payment item.
[956] Fix | Delete
*
[957] Fix | Delete
* @return string
[958] Fix | Delete
*/
[959] Fix | Delete
private function get_column_type( array $item ) {
[960] Fix | Delete
[961] Fix | Delete
if ( ! isset( $item['type'] ) || ! ValueValidator::is_valid( $item['type'], 'type' ) ) {
[962] Fix | Delete
return Helpers::get_placeholder_na_text();
[963] Fix | Delete
}
[964] Fix | Delete
[965] Fix | Delete
return ValueValidator::get_allowed_types()[ $item['type'] ];
[966] Fix | Delete
}
[967] Fix | Delete
[968] Fix | Delete
/**
[969] Fix | Delete
* Show the coupon code used for the payment.
[970] Fix | Delete
* If the coupon code is not found, show N/A.
[971] Fix | Delete
*
[972] Fix | Delete
* @since 1.8.4
[973] Fix | Delete
*
[974] Fix | Delete
* @param array $item Payment item.
[975] Fix | Delete
*
[976] Fix | Delete
* @return string
[977] Fix | Delete
*/
[978] Fix | Delete
private function get_column_coupon( $item ) {
[979] Fix | Delete
[980] Fix | Delete
$payment_meta = wpforms()->get( 'payment_meta' )->get_all( $item['id'] );
[981] Fix | Delete
[982] Fix | Delete
// If the coupon info is empty, show N/A.
[983] Fix | Delete
if ( empty( $payment_meta['coupon_info'] ) || empty( $payment_meta['coupon_id'] ) ) {
[984] Fix | Delete
return Helpers::get_placeholder_na_text();
[985] Fix | Delete
}
[986] Fix | Delete
[987] Fix | Delete
$url = add_query_arg(
[988] Fix | Delete
'coupon_id',
[989] Fix | Delete
$payment_meta['coupon_id']->value,
[990] Fix | Delete
remove_query_arg( 'paged' )
[991] Fix | Delete
);
[992] Fix | Delete
[993] Fix | Delete
return sprintf(
[994] Fix | Delete
'<a href="%1$s" aria-label="%2$s">%3$s</a>',
[995] Fix | Delete
esc_url( $url ),
[996] Fix | Delete
esc_attr__( 'Filter entries by coupon', 'wpforms-lite' ),
[997] Fix | Delete
esc_html( $this->get_coupon_name_by_info( $payment_meta['coupon_info']->value ) )
[998] Fix | Delete
);
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function