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 / ProductCollections / ProductCollectionsListTable.php
surecart / app / src / Controllers / Admin / ProductCollections Last commit date
ProductCollectionsController.php 2 years ago ProductCollectionsListTable.php 2 years ago ProductCollectionsScriptsController.php 2 years ago
ProductCollectionsListTable.php
143 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 * Create a new table class that will extend the WP_List_Table
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 [
47 'name' => __( 'Name', 'surecart' ),
48 'products_count' => __( 'Products', 'surecart' ),
49 'description' => __( 'Description', 'surecart' ),
50 'created' => __( 'Created', 'surecart' ),
51 ];
52 }
53
54 /**
55 * Define which columns are hidden.
56 *
57 * @return array
58 */
59 public function get_hidden_columns(): array {
60 return [];
61 }
62
63 /**
64 * Define the sortable columns.
65 *
66 * @return array
67 */
68 public function get_sortable_columns(): array {
69 return [];
70 }
71
72 /**
73 * Get the table data.
74 *
75 * @return object
76 */
77 protected function table_data() {
78 return ProductCollection::where(
79 [
80 'archived' => $this->getArchiveStatus(),
81 'query' => $this->get_search_query(),
82 ]
83 )->paginate(
84 [
85 'per_page' => $this->get_items_per_page( 'product_collection' ),
86 'page' => $this->get_pagenum(),
87 ]
88 );
89 }
90
91 /**
92 * Handle the description column.
93 *
94 * @param \SureCart\Models\ProductCollection $product_collection Product collection object.
95 *
96 * @return string
97 */
98 public function column_description( $product_collection ) {
99 $description = wp_strip_all_tags( $product_collection->description );
100 $trimmed_description = substr( $description, 0, 30 );
101 if ( strlen( $description ) > 30 ) {
102 $trimmed_description .= '...';
103 }
104 return $trimmed_description;
105 }
106
107 /**
108 * Handle the name column.
109 *
110 * @param \SureCart\Models\ProductCollection $collection Product collection object.
111 *
112 * @return string
113 */
114 public function column_name( $collection ) {
115 ob_start();
116 ?>
117 <a class="row-title" aria-label="<?php echo esc_attr__( 'Edit Product Collection', 'surecart' ); ?>" href="<?php echo esc_url( \SureCart::getUrl()->edit( 'product_collection', $collection->id ) ); ?>">
118 <?php echo esc_html( $collection->name ); ?>
119 </a>
120 <?php
121 echo wp_kses_post(
122 $this->row_actions(
123 [
124 '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>',
125 'view' => '<a href="' . esc_url( $collection->permalink ) . '" aria-label="' . esc_attr__( 'View', 'surecart' ) . '">' . esc_html__( 'View', 'surecart' ) . '</a>',
126 ],
127 )
128 );
129 return ob_get_clean();
130 }
131
132 /**
133 * Handle the products_count column.
134 *
135 * @param \SureCart\Models\ProductCollection $collection Product collection object.
136 *
137 * @return int
138 */
139 public function column_products_count( $collection ) {
140 return '<a href="' . esc_url( add_query_arg( [ 'sc_collection' => $collection->id ], \SureCart::getUrl()->index( 'product' ) ) ) . '">' . $collection->products_count ?? 0 . '</a>';
141 }
142 }
143