PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Controllers / Admin / Tables / ListTable.php
surecart / app / src / Controllers / Admin / Tables Last commit date
ListTable.php 3 years ago
ListTable.php
181 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\Tables;
4
5 use SureCart\Models\Integration;
6 use SureCart\Support\TimeDate;
7
8 // WP_List_Table is not loaded automatically so we need to load it in our application.
9 if ( ! class_exists( 'WP_List_Table' ) ) {
10 require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
11 }
12
13 /**
14 * Base list table class.
15 */
16 abstract class ListTable extends \WP_List_Table {
17 public $checkbox = true;
18
19 /**
20 * Show filters in extra tablenav top
21 *
22 * @param [type] $which
23 * @return void
24 */
25 protected function extra_tablenav( $which ) {
26 if ( 'top' === $which ) {
27 return $this->views();
28 }
29 }
30
31 /**
32 * Define which columns are hidden
33 *
34 * @return Array
35 */
36 public function get_hidden_columns() {
37 return array();
38 }
39
40 /**
41 * Get the archive query status.
42 *
43 * @return boolean|null
44 */
45 public function getArchiveStatus( $default = 'active' ) {
46 $status = sanitize_text_field( wp_unslash( $_GET['status'] ?? $default ) );
47 $archived = false;
48 if ( 'archived' === $status ) {
49 $archived = true;
50 }
51 if ( 'all' === $status ) {
52 $archived = null;
53 }
54
55 return $archived;
56 }
57
58 /**
59 * Handle the date
60 *
61 * @param \SureCart\Models\Model $model Model.
62 *
63 * @return string
64 */
65 public function column_date( $model ) {
66 $created = sprintf(
67 '<time datetime="%1$s" title="%2$s">%3$s</time>',
68 esc_attr( $model->created_at ),
69 esc_html( TimeDate::formatDateAndTime( $model->created_at ) ),
70 esc_html( TimeDate::humanTimeDiff( $model->created_at ) )
71 );
72 $updated = sprintf(
73 '%1$s <time datetime="%2$s" title="%3$s">%4$s</time>',
74 __( 'Updated', 'surecart' ),
75 esc_attr( $model->updated_at ),
76 esc_html( TimeDate::formatDateAndTime( $model->updated_at ) ),
77 esc_html( TimeDate::humanTimeDiff( $model->updated_at ) )
78 );
79 return $created . '<br /><small style="opacity: 0.75">' . $updated . '</small>';
80 }
81
82 /**
83 * Handle the created column
84 *
85 * @param \SureCart\Models\Model $model Model.
86 *
87 * @return string
88 */
89 public function column_created( $model ) {
90 return sprintf(
91 '<sc-format-date
92 date="%1$s"
93 month="long"
94 day="numeric"
95 year="numeric"
96 hour="numeric"
97 minute="numeric"
98 type="timestamp"></sc-format-date>',
99 esc_attr( $model->created_at )
100 );
101 }
102 /**
103 * The mode for the model.
104 *
105 * @param SureCart\Model $model Model.
106 *
107 * @return string
108 */
109 public function column_mode( $model ) {
110 return empty( $model->live_mode ) ? '<sc-tag type="warning">' . __( 'Test', 'surecart' ) . '</sc-tag>' : '';
111 }
112
113 /**
114 * Show an integrations list based on a product id.
115 *
116 * @param string $id Product id.
117 * @param string $name Model name.
118 *
119 * @return string
120 */
121 public function productIntegrationsList( $id = '', $name = 'product' ) {
122 $output = '';
123 $integrations = Integration::where( 'model_id', $id )->andWhere( 'model_name', $name )->get();
124 if ( empty( $integrations ) ) {
125 return $output;
126 }
127 foreach ( $integrations as $integration ) {
128 $provider = (object) apply_filters( "surecart/integrations/providers/find/{$integration->provider}", [] );
129 $item = (object) apply_filters( "surecart/integrations/providers/{$integration->provider}/item", $integration->integration_id );
130 if ( ! empty( $item->label ) ) {
131 ob_start();
132 ?>
133 <sc-tooltip text="<?php echo esc_attr( $provider->label ?? '' ); ?>" type="text" style="display:inline-block; cursor: help">
134 <sc-flex justify-content="flex-start">
135 <?php if ( $provider->logo ) : ?>
136 <img src="<?php echo esc_url( $provider->logo ); ?>" style="width: 18px; height: 18px"/>
137 <?php endif; ?>
138 <?php echo wp_kses_post( $item->label ); ?>
139 </sc-flex>
140 </sc-tooltip>
141 <br />
142 <?php
143 $output .= ob_get_clean();
144 }
145 }
146 return $output;
147 }
148
149 /**
150 * Get the search query from the url args.
151 *
152 * @return string
153 */
154 public function get_search_query() {
155 $search = urldecode( $_GET['s'] ?? '' );
156 return str_replace( [ "\r", "\n" ], '', $search );
157 }
158
159 /**
160 * Display a search form
161 *
162 * @param string $text The 'submit' button label.
163 * @param string $input_id ID attribute value for the search input field.
164 *
165 * @return void
166 */
167 public function search_form( $text, $input_id ) {
168 ?>
169 <form id="posts-filter" method="get">
170 <?php if ( isset( $_GET['page'] ) ) : ?>
171 <input type="hidden" name="page" value="<?php echo esc_attr( $_GET['page'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>">
172 <?php endif; ?>
173 <?php if ( isset( $_GET['status'] ) ) : ?>
174 <input type="hidden" name="status" value="<?php echo esc_attr( $_GET['status'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>">
175 <?php endif; ?>
176 <?php $this->search_box( $text, $input_id ); ?>
177 </form>
178 <?php
179 }
180 }
181