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 / ProductCollections / ProductCollectionsListTable.php
surecart / app / src / Controllers / Admin / ProductCollections Last commit date
ProductCollectionsController.php 1 week ago ProductCollectionsListTable.php 1 week ago ProductCollectionsScriptsController.php 1 week ago
ProductCollectionsListTable.php
146 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\ProductCollections;
4
5 use SureCart\Controllers\Admin\Tables\ListTable;
6 use SureCart\Models\ProductCollection;
7
8 /**
9 * WP_List_Table for Product Collections.
10 */
11 class ProductCollectionsListTable extends ListTable {
12 /**
13 * Prepare the items for the table to process
14 *
15 * @return void
16 */
17 public function prepare_items(): void {
18 $columns = $this->get_columns();
19 $hidden = $this->get_hidden_columns();
20 $sortable = $this->get_sortable_columns();
21
22 $this->_column_headers = array( $columns, $hidden, $sortable );
23
24 $query = $this->table_data();
25 if ( is_wp_error( $query ) ) {
26 $this->items = [];
27 return;
28 }
29
30 $this->set_pagination_args(
31 [
32 'total_items' => $query->pagination->count,
33 'per_page' => $this->get_items_per_page( 'product_collections' ),
34 ]
35 );
36
37 $this->items = $query->data;
38 }
39
40 /**
41 * Override the parent columns method. Defines the columns to use in your listing table
42 *
43 * @return array
44 */
45 public function get_columns(): array {
46 return array_merge(
47 [
48 'name' => __( 'Name', 'surecart' ),
49 'products_count' => __( 'Products', 'surecart' ),
50 'description' => __( 'Description', 'surecart' ),
51 'created' => __( 'Created', 'surecart' ),
52 ],
53 parent::get_columns()
54 );
55 }
56
57 /**
58 * Define which columns are hidden.
59 *
60 * @return array
61 */
62 public function get_hidden_columns(): array {
63 return [];
64 }
65
66 /**
67 * Define the sortable columns.
68 *
69 * @return array
70 */
71 public function get_sortable_columns(): array {
72 return [];
73 }
74
75 /**
76 * Get the table data.
77 *
78 * @return object
79 */
80 protected function table_data() {
81 return ProductCollection::where(
82 [
83 'archived' => $this->getArchiveStatus(),
84 'query' => $this->get_search_query(),
85 ]
86 )->paginate(
87 [
88 'per_page' => $this->get_items_per_page( 'product_collection' ),
89 'page' => $this->get_pagenum(),
90 ]
91 );
92 }
93
94 /**
95 * Handle the description column.
96 *
97 * @param \SureCart\Models\ProductCollection $product_collection Product collection object.
98 *
99 * @return string
100 */
101 public function column_description( $product_collection ) {
102 $description = wp_strip_all_tags( $product_collection->description );
103 $trimmed_description = substr( $description, 0, 30 );
104 if ( strlen( $description ) > 30 ) {
105 $trimmed_description .= '...';
106 }
107 return $trimmed_description;
108 }
109
110 /**
111 * Handle the name column.
112 *
113 * @param \SureCart\Models\ProductCollection $collection Product collection object.
114 *
115 * @return string
116 */
117 public function column_name( $collection ) {
118 ob_start();
119 ?>
120 <a class="row-title" aria-label="<?php esc_attr_e( 'Edit Product Collection', 'surecart' ); ?>" href="<?php echo esc_url( \SureCart::getUrl()->edit( 'product_collection', $collection->id ) ); ?>">
121 <?php echo esc_html( $collection->name ); ?>
122 </a>
123 <?php
124 echo wp_kses_post(
125 $this->row_actions(
126 [
127 'edit' => '<a href="' . esc_url( \SureCart::getUrl()->edit( 'product_collection', $collection->id ) ) . '" aria-label="' . esc_attr__( 'Edit Product Collection', 'surecart' ) . '">' . esc_attr__( 'Edit', 'surecart' ) . '</a>',
128 'view' => '<a href="' . esc_url( $collection->permalink ) . '" aria-label="' . esc_attr__( 'View', 'surecart' ) . '">' . esc_html__( 'View', 'surecart' ) . '</a>',
129 ],
130 )
131 );
132 return ob_get_clean();
133 }
134
135 /**
136 * Handle the products_count column.
137 *
138 * @param \SureCart\Models\ProductCollection $collection Product collection object.
139 *
140 * @return int
141 */
142 public function column_products_count( $collection ) {
143 return '<a href="' . esc_url( add_query_arg( [ 'sc_collection' => $collection->id ], \SureCart::getUrl()->index( 'product' ) ) ) . '">' . $collection->products_count ?? 0 . '</a>';
144 }
145 }
146