PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
4.5.1 4.5.0 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 / ProductGroups / ProductGroupsListTable.php
surecart / app / src / Controllers / Admin / ProductGroups Last commit date
ProductGroupsController.php 2 years ago ProductGroupsListTable.php 1 year ago ProductGroupsScriptsController.php 3 years ago
ProductGroupsListTable.php
202 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\ProductGroups;
4
5 use SureCart\Controllers\Admin\Tables\ListTable;
6 use SureCart\Models\ProductGroup;
7
8 /**
9 * Create a new table class that will extend the WP_List_Table
10 */
11 class ProductGroupsListTable extends ListTable {
12 public $checkbox = true;
13
14 /**
15 * Prepare the items for the table to process
16 *
17 * @return void
18 */
19 public function prepare_items() {
20 $columns = $this->get_columns();
21 $hidden = $this->get_hidden_columns();
22 $sortable = $this->get_sortable_columns();
23
24 $this->_column_headers = array( $columns, $hidden, $sortable );
25
26 $query = $this->table_data();
27 if ( is_wp_error( $query ) ) {
28 $this->items = [];
29 return;
30 }
31
32 $this->set_pagination_args(
33 [
34 'total_items' => $query->pagination->count,
35 'per_page' => $this->get_items_per_page( 'orders' ),
36 ]
37 );
38
39 $this->items = $query->data;
40 }
41
42 public function search() {
43 ?>
44 <form class="search-form"
45 method="get">
46 <?php $this->search_box( __( 'Search Orders', 'surecart' ), 'order' ); ?>
47 <input type="hidden"
48 name="id"
49 value="1" />
50 </form>
51 <?php
52 }
53
54 /**
55 * @global int $post_id
56 * @global string $comment_status
57 * @global string $comment_type
58 */
59 protected function get_views() {
60 $stati = [
61 'active' => __( 'Active', 'surecart' ),
62 'archived' => __( 'Archived', 'surecart' ),
63 'all' => __( 'All', 'surecart' ),
64 ];
65
66 foreach ( $stati as $status => $label ) {
67 $link = \SureCart::getUrl()->index( 'product_groups' );
68 $current_link_attributes = '';
69
70 if ( ! empty( $_GET['status'] ) ) {
71 if ( $status === $_GET['status'] ) {
72 $current_link_attributes = ' class="current" aria-current="page"';
73 }
74 } elseif ( 'active' === $status ) {
75 $current_link_attributes = ' class="current" aria-current="page"';
76 }
77
78 $link = add_query_arg( 'status', $status, $link );
79
80 $link = esc_url( $link );
81
82 $status_links[ $status ] = "<a href='$link'$current_link_attributes>" . $label . '</a>';
83 }
84
85 /**
86 * Filters the comment status links.
87 *
88 * @since 2.5.0
89 * @since 5.1.0 The 'Mine' link was added.
90 *
91 * @param string[] $status_links An associative array of fully-formed comment status links. Includes 'All', 'Mine',
92 * 'Pending', 'Approved', 'Spam', and 'Trash'.
93 */
94 return apply_filters( 'comment_status_links', $status_links );
95 }
96
97 /**
98 * Override the parent columns method. Defines the columns to use in your listing table
99 *
100 * @return Array
101 */
102 public function get_columns() {
103 return [
104 'name' => __( 'Name', 'surecart' ),
105 'status' => __( 'Status', 'surecart' ),
106 'created' => __( 'Created', 'surecart' ),
107 ];
108 }
109
110 /**
111 * Define which columns are hidden
112 *
113 * @return Array
114 */
115 public function get_hidden_columns() {
116 return [];
117 }
118
119 /**
120 * Define the sortable columns
121 *
122 * @return Array
123 */
124 public function get_sortable_columns() {
125 return array( 'title' => array( 'title', false ) );
126 }
127
128 /**
129 * Get the archive query status.
130 *
131 * @return boolean|null
132 */
133 public function getStatus() {
134 $status = sanitize_text_field( wp_unslash( $_GET['status'] ?? 'active' ) );
135 if ( 'active' === $status ) {
136 return [ 'archived' => false ];
137 }
138 if ( 'archived' === $status ) {
139 return [ 'archived' => true ];
140 }
141 if ( 'all' === $status ) {
142 return [];
143 }
144 return esc_html( $status );
145 }
146
147 /**
148 * Get the table data
149 *
150 * @return Object
151 */
152 protected function table_data() {
153 return ProductGroup::where(
154 [
155 $this->getStatus(),
156 ]
157 )->paginate(
158 [
159 'per_page' => $this->get_items_per_page( 'product_group' ),
160 'page' => $this->get_pagenum(),
161 ]
162 );
163 }
164
165 /**
166 * Handle the total column
167 *
168 * @param \SureCart\Models\Order $order Checkout Session Model.
169 *
170 * @return string
171 */
172 public function column_date( $order ) {
173 return "<sc-format-date date='$order->created' type='timestamp'></sc-format-date>";
174 }
175
176 /**
177 * Handle the status
178 *
179 * @param \SureCart\Models\Order $order Order Model.
180 *
181 * @return string
182 */
183 public function column_status( $group ) {
184 return $group->archived ? '<sc-tag type="warning">' . __( 'Archived', 'surecart' ) . '</sc-tag>' : '<sc-tag type="success">' . __( 'Live', 'surecart' ) . '</sc-tag>';
185 }
186
187 public function column_name( $group ) {
188 ob_start();
189 ?>
190 <a class="row-title" aria-label="<?php echo esc_attr__( 'Edit Order', 'surecart' ); ?>" href="<?php echo esc_url( \SureCart::getUrl()->edit( 'product_group', $group->id ) ); ?>">
191 <?php echo \sanitize_text_field( $group->name ); ?>
192 </a>
193 <?php
194 echo $this->row_actions(
195 [
196 'view' => '<a href="' . esc_url( \SureCart::getUrl()->show( 'product_group', $group->id ) ) . '" aria-label="' . esc_attr__( 'View Product Group', 'surecart' ) . '">' . __( 'View', 'surecart' ) . '</a>',
197 ],
198 );
199 return ob_get_clean();
200 }
201 }
202