PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.2
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 / WordPress / Taxonomies / CollectionTaxonomyService.php
surecart / app / src / WordPress / Taxonomies Last commit date
CollectionTaxonomyService.php 1 year ago StoreTaxonomyService.php 1 year ago TaxonomyService.php 1 year ago TaxonomyServiceProvider.php 1 year ago
CollectionTaxonomyService.php
151 lines
1 <?php
2
3 namespace SureCart\WordPress\Taxonomies;
4
5 /**
6 * Form post type service class.
7 */
8 class CollectionTaxonomyService {
9 /**
10 * The post type slug.
11 *
12 * @var string
13 */
14 protected $slug = 'sc_collection';
15
16 /**
17 * Bootstrap service.
18 *
19 * @return void
20 */
21 public function bootstrap() {
22 add_action( 'init', array( $this, 'register' ) );
23 add_filter( 'taxonomy_template', array( $this, 'template' ) );
24 add_filter( 'get_edit_term_link', array( $this, 'updateEditLink' ), 10, 3 );
25 add_filter( 'get_terms_args', array( $this, 'getTermsArgs' ), 10, 2 );
26 }
27
28 /**
29 * Always fetch taxonomy terms with sc_id metadata.
30 *
31 * @param array $args The arguments.
32 * @param array $taxonomies The taxonomies.
33 *
34 * @return array
35 */
36 public function getTermsArgs( $args, $taxonomies ) {
37 global $pagenow;
38 // allow if editing direction on admin.
39 if ( is_admin() && 'edit-tags.php' === $pagenow ) {
40 return $args;
41 }
42
43 if ( ! empty( \SureCart::account()->id ) && in_array( $this->slug, $taxonomies, true ) && empty( $args['suppress_filters'] ) ) {
44 $args['meta_query'] = array(
45 array(
46 'key' => 'sc_account',
47 'value' => \SureCart::account()->id,
48 ),
49 );
50 }
51
52 return $args;
53 }
54
55 /**
56 * Update the edit collection link to edit the collection directly.
57 *
58 * @param string $link The link.
59 * @param integer $term_id The term ID.
60 * @param string $taxonomy The taxonomy.
61 *
62 * @return string
63 */
64 public function updateEditLink( $link, $term_id, $taxonomy ) {
65 // only for our post type.
66 if ( $taxonomy !== $this->slug ) {
67 return $link;
68 }
69
70 $collection = sc_get_collection( $term_id );
71
72 // if we have a collection, return the edit link.
73 if ( ! empty( $collection ) ) {
74 return \SureCart::getUrl()->edit( 'product_collection', $collection->id );
75 }
76
77 return $link;
78 }
79
80 /**
81 * Get the template for the taxonomy.
82 *
83 * @param string $template The template.
84 *
85 * @return string
86 */
87 public function template( $template ) {
88 // not our taxonomy.
89 if ( ! is_tax( $this->slug ) ) {
90 return $template;
91 }
92
93 $term = get_queried_object();
94 $collection = sc_get_collection( $term->term_id );
95
96 if ( wp_is_block_theme() && ! empty( $collection->metadata->wp_template_id ) ) {
97 global $_wp_current_template_id, $_wp_current_template_content;
98 $_wp_current_template_id = $collection->metadata->wp_template_id;
99 $block_template = get_block_template( $collection->metadata->wp_template_id );
100 if ( ! empty( $block_template ) ) {
101 $_wp_current_template_content = $block_template->content ?? '';
102 }
103 }
104
105 // the theme has provided a taxonomy template, or we are not on the collection taxonomy.
106 if ( ! empty( $template ) || empty( $collection->metadata->wp_template_id ) || strpos( $collection->metadata->wp_template_id, '.php' ) === false ) {
107 return $template;
108 }
109
110 // check if we are on the collection taxonomy.
111 return untrailingslashit( plugin_dir_path( SURECART_PLUGIN_FILE ) ) . '/templates/pages/template-surecart-collection.php';
112 }
113
114 /**
115 * Register the taxonomy
116 *
117 * @return void
118 */
119 public function register() {
120 register_taxonomy(
121 $this->slug,
122 array( 'sc_product' ),
123 array(
124 'label' => __( 'Collections', 'surecart' ),
125 'labels' => array(
126 'name' => _x( 'Collections', 'taxonomy general name', 'surecart' ),
127 'singular_name' => _x( 'Collection', 'taxonomy singular name', 'surecart' ),
128 'search_items' => __( 'Search Collections', 'surecart' ),
129 'all_items' => __( 'All Collections', 'surecart' ),
130 'parent_item' => __( 'parent Collection', 'surecart' ),
131 'parent_item_colon' => __( 'parent Collection:', 'surecart' ),
132 'edit_item' => __( 'Edit Collection', 'surecart' ),
133 'update_item' => __( 'Update Collection', 'surecart' ),
134 'add_new_item' => __( 'Add New Collection', 'surecart' ),
135 'new_item_name' => __( 'New Collection Name', 'surecart' ),
136 'menu_name' => __( 'Collection', 'surecart' ),
137 ),
138 'public' => true,
139 'show_in_rest' => true,
140 'hierarchical' => false,
141 'show_ui' => true,
142 'show_admin_column' => true,
143 'rewrite' => array(
144 'slug' => \SureCart::settings()->permalinks()->getBase( 'collection_page' ),
145 'with_front' => false,
146 ),
147 )
148 );
149 }
150 }
151