PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
4.6.2 4.6.1 4.6.0 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 1 week ago ProductGroupsListTable.php 1 week ago ProductGroupsScriptsController.php 1 week ago
ProductGroupsListTable.php
194 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 array_merge(
104 [
105 'name' => __( 'Name', 'surecart' ),
106 'status' => __( 'Status', 'surecart' ),
107 'created' => __( 'Created', 'surecart' ),
108 ],
109 parent::get_columns()
110 );
111 }
112
113 /**
114 * Define which columns are hidden
115 *
116 * @return Array
117 */
118 public function get_hidden_columns() {
119 return [];
120 }
121
122 /**
123 * Define the sortable columns
124 *
125 * @return Array
126 */
127 public function get_sortable_columns() {
128 return array( 'title' => array( 'title', false ) );
129 }
130
131 /**
132 * Get the archive query status.
133 *
134 * @return boolean|null
135 */
136 public function getStatus() {
137 $status = sanitize_text_field( wp_unslash( $_GET['status'] ?? 'active' ) );
138 if ( 'active' === $status ) {
139 return [ 'archived' => false ];
140 }
141 if ( 'archived' === $status ) {
142 return [ 'archived' => true ];
143 }
144 if ( 'all' === $status ) {
145 return [];
146 }
147 return esc_html( $status );
148 }
149
150 /**
151 * Get the table data
152 *
153 * @return Object
154 */
155 protected function table_data() {
156 return ProductGroup::where(
157 [
158 $this->getStatus(),
159 ]
160 )->paginate(
161 [
162 'per_page' => $this->get_items_per_page( 'product_group' ),
163 'page' => $this->get_pagenum(),
164 ]
165 );
166 }
167
168 /**
169 * Handle the status
170 *
171 * @param \SureCart\Models\Order $order Order Model.
172 *
173 * @return string
174 */
175 public function column_status( $group ) {
176 return $group->archived ? '<sc-tag type="warning">' . __( 'Archived', 'surecart' ) . '</sc-tag>' : '<sc-tag type="success">' . __( 'Live', 'surecart' ) . '</sc-tag>';
177 }
178
179 public function column_name( $group ) {
180 ob_start();
181 ?>
182 <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 ) ); ?>">
183 <?php echo \sanitize_text_field( $group->name ); ?>
184 </a>
185 <?php
186 echo $this->row_actions(
187 [
188 'edit' => '<a href="' . esc_url( \SureCart::getUrl()->edit( 'product_group', $group->id ) ) . '" aria-label="' . esc_attr__( 'Edit Upgrade Group', 'surecart' ) . '">' . __( 'Edit', 'surecart' ) . '</a>',
189 ],
190 );
191 return ob_get_clean();
192 }
193 }
194