PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.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 / Integrations / Elementor / ElementorDocumentsService.php
surecart / app / src / Integrations / Elementor Last commit date
Conditions 1 year ago Documents 1 year ago DynamicTags 4 months ago Widgets 2 months ago assets 4 months ago ElementorBlockAdapterService.php 4 months ago ElementorCoreBlockStylesService.php 1 year ago ElementorDocumentsService.php 1 year ago ElementorDynamicTagsService.php 1 year ago ElementorEditorService.php 1 year ago ElementorFseScriptLoaderService.php 1 year ago ElementorServiceProvider.php 8 months ago ElementorShortcodeService.php 1 year ago ElementorTemplatesService.php 4 months ago ElementorWidgetsService.php 8 months ago
ElementorDocumentsService.php
101 lines
1 <?php
2
3 namespace SureCart\Integrations\Elementor;
4
5 use SureCart\Integrations\Elementor\Conditions\Conditions;
6 use SureCart\Integrations\Elementor\Documents\ProductDocument;
7 use SureCart\Models\Product;
8 /**
9 * Elementor documents service.
10 */
11 class ElementorDocumentsService {
12 /**
13 * Bootstrap the service.
14 *
15 * @return void
16 */
17 public function bootstrap() {
18 add_action( 'elementor/documents/register', [ $this, 'registerDocument' ] );
19 add_action( 'elementor/theme/register_conditions', [ $this, 'productThemeConditions' ] );
20 add_filter( 'elementor/query/get_autocomplete/surecart-product', [ $this, 'getAutoComplete' ], 10, 2 );
21 add_filter( 'elementor/query/get_value_titles/surecart-product', [ $this, 'getTitles' ], 10, 2 );
22 }
23
24 /**
25 * Add product theme condition.
26 *
27 * @param \ElementorPro\Modules\ThemeBuilder\Classes\Documents_Manager $documents_manager The documents manager.
28 *
29 * @return void
30 */
31 public function registerDocument( $documents_manager ) {
32 $documents_manager->register_document_type( 'surecart-product', ProductDocument::get_class_full_name() );
33 }
34
35 /**
36 * Add product theme condition.
37 *
38 * @param \ElementorPro\Modules\ThemeBuilder\Classes\Conditions_Manager $conditions_manager The conditions manager.
39 *
40 * @return void
41 */
42 public function productThemeConditions( $conditions_manager ) {
43 $conditions_manager->register_condition_instance( new Conditions() );
44 }
45
46 /**
47 * Get autocomplete
48 *
49 * @param array $results The results.
50 * @param array $data Request data.
51 *
52 * @return array
53 */
54 public function getAutoComplete( $results, $data ) {
55 if ( 'surecart-product' !== $data['autocomplete']['object'] ) {
56 return $results;
57 }
58
59 $products = Product::where(
60 [
61 'query' => $data['q'],
62 'archived' => false,
63 ]
64 )->get();
65
66 foreach ( $products as $product ) {
67 $results[] = [
68 'id' => $product->id,
69 'text' => $product->name,
70 ];
71 }
72 return $results;
73 }
74
75 /**
76 * Get the titles for the query control
77 * This is important as it shows the previously selected items when the conditions load in.
78 *
79 * @param array $results The results.
80 * @param array $request The request.
81 *
82 * @return array
83 */
84 public function getTitles( $results, $request ) {
85 if ( 'surecart-product' !== $request['get_titles']['object'] || empty( $request['id'] ) ) {
86 return $results;
87 }
88
89 $products = Product::where(
90 [
91 'ids' => [ $request['id'] ],
92 ]
93 )->get();
94
95 foreach ( $products as $product ) {
96 $results[ $product->id ] = $product->name;
97 }
98 return $results;
99 }
100 }
101