PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.13.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.13.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 3 years ago ProductGroupsScriptsController.php 3 years ago
ProductGroupsListTable.php
201 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 $link = \SureCart::getUrl()->index( 'product_groups' );
67
68 foreach ( $stati as $status => $label ) {
69 $current_link_attributes = '';
70
71 if ( ! empty( $_GET['status'] ) ) {
72 if ( $status === $_GET['status'] ) {
73 $current_link_attributes = ' class="current" aria-current="page"';
74 }
75 } elseif ( 'active' === $status ) {
76 $current_link_attributes = ' class="current" aria-current="page"';
77 }
78
79 $link = add_query_arg( 'status', $status, $link );
80
81 $status_links[ $status ] = "<a href='$link'$current_link_attributes>" . $label . '</a>';
82 }
83
84 /**
85 * Filters the comment status links.
86 *
87 * @since 2.5.0
88 * @since 5.1.0 The 'Mine' link was added.
89 *
90 * @param string[] $status_links An associative array of fully-formed comment status links. Includes 'All', 'Mine',
91 * 'Pending', 'Approved', 'Spam', and 'Trash'.
92 */
93 return apply_filters( 'comment_status_links', $status_links );
94 }
95
96 /**
97 * Override the parent columns method. Defines the columns to use in your listing table
98 *
99 * @return Array
100 */
101 public function get_columns() {
102 return [
103 'name' => __( 'Name', 'surecart' ),
104 'status' => __( 'Status', 'surecart' ),
105 'created' => __( 'Created', 'surecart' ),
106 ];
107 }
108
109 /**
110 * Define which columns are hidden
111 *
112 * @return Array
113 */
114 public function get_hidden_columns() {
115 return [];
116 }
117
118 /**
119 * Define the sortable columns
120 *
121 * @return Array
122 */
123 public function get_sortable_columns() {
124 return array( 'title' => array( 'title', false ) );
125 }
126
127 /**
128 * Get the archive query status.
129 *
130 * @return boolean|null
131 */
132 public function getStatus() {
133 $status = sanitize_text_field( wp_unslash( $_GET['status'] ?? 'active' ) );
134 if ( 'active' === $status ) {
135 return [ 'archived' => false ];
136 }
137 if ( 'archived' === $status ) {
138 return [ 'archived' => true ];
139 }
140 if ( 'all' === $status ) {
141 return [];
142 }
143 return esc_html( $status );
144 }
145
146 /**
147 * Get the table data
148 *
149 * @return Object
150 */
151 protected function table_data() {
152 return ProductGroup::where(
153 [
154 $this->getStatus(),
155 ]
156 )->paginate(
157 [
158 'per_page' => $this->get_items_per_page( 'product_group' ),
159 'page' => $this->get_pagenum(),
160 ]
161 );
162 }
163
164 /**
165 * Handle the total column
166 *
167 * @param \SureCart\Models\Order $order Checkout Session Model.
168 *
169 * @return string
170 */
171 public function column_date( $order ) {
172 return "<sc-format-date date='$order->created' type='timestamp'></sc-format-date>";
173 }
174
175 /**
176 * Handle the status
177 *
178 * @param \SureCart\Models\Order $order Order Model.
179 *
180 * @return string
181 */
182 public function column_status( $group ) {
183 return $group->archived ? '<sc-tag type="warning">' . __( 'Archived', 'surecart' ) . '</sc-tag>' : '<sc-tag type="success">' . __( 'Live', 'surecart' ) . '</sc-tag>';
184 }
185
186 public function column_name( $group ) {
187 ob_start();
188 ?>
189 <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 ) ); ?>">
190 <?php echo \sanitize_text_field( $group->name ); ?>
191 </a>
192 <?php
193 echo $this->row_actions(
194 [
195 'view' => '<a href="' . esc_url( \SureCart::getUrl()->show( 'product_group', $group->id ) ) . '" aria-label="' . esc_attr( 'View Product Group', 'surecart' ) . '">' . __( 'View', 'surecart' ) . '</a>',
196 ],
197 );
198 return ob_get_clean();
199 }
200 }
201