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 / Integrations / ThriveAutomator / DataObjects / ProductDataObject.php
surecart / app / src / Integrations / ThriveAutomator / DataObjects Last commit date
PreviousProductDataObject.php 3 years ago ProductDataObject.php 3 years ago
ProductDataObject.php
105 lines
1 <?php
2
3 namespace SureCart\Integrations\ThriveAutomator\DataObjects;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 exit; // Silence is golden!
7 }
8
9 use SureCart\Integrations\ThriveAutomator\DataFields\PreviousProductDataField;
10 use SureCart\Integrations\ThriveAutomator\DataFields\ProductDataField;
11 use SureCart\Integrations\ThriveAutomator\DataFields\ProductIDDataField;
12 use SureCart\Integrations\ThriveAutomator\DataFields\ProductNameDataField;
13 use Thrive\Automator\Items\Data_Object;
14 use SureCart\Models\Product;
15
16 /**
17 * Class ProductDataObject
18 */
19 class ProductDataObject extends Data_Object {
20 /**
21 * Get the data-object identifier
22 *
23 * @return string
24 */
25 public static function get_id() {
26 return 'surecart_product_data';
27 }
28
29 /**
30 * Nice name for the data-object.
31 *
32 * @return string
33 */
34 public static function get_nice_name() {
35 return __( 'SureCart product object', 'surecart' );
36 }
37
38 /**
39 * Array of field object keys that are contained by this data-object
40 *
41 * @return array
42 */
43 public static function get_fields() {
44 return [
45 ProductNameDataField::get_id(),
46 ProductIDDataField::get_id(),
47 ProductDataField::get_id(),
48 ];
49 }
50
51 /**
52 * Create the object from the given product.
53 *
54 * @param string|\SureCart\Models\Product $param Product model or id.
55 *
56 * @throws \Exception If no parameter is provided.
57 *
58 * @return array
59 */
60 public static function create_object( $param ) {
61 if ( empty( $param ) ) {
62 throw new \Exception( 'No parameter provided for SureCart ProductData object' );
63 }
64
65 $product = null;
66 if ( is_a( $param, Product::class ) ) {
67 $product = $param;
68 } else {
69 $product = Product::find( $param );
70 }
71
72 if ( $product ) {
73 return [
74 ProductNameDataField::get_id() => $product->id,
75 ProductIDDataField::get_id() => $product->id,
76 ProductDataField::get_id() => $product->id,
77 PreviousProductDataField::get_id() => $product->id,
78 ];
79 }
80
81 return $product;
82 }
83
84 /**
85 * Get the options.
86 *
87 * @return array
88 */
89 public static function get_data_object_options() {
90 $options = [];
91
92 foreach ( Product::get() as $product ) {
93 $name = $product->name;
94 $id = $product->id;
95 $options[ $id ] = [
96 'id' => $id,
97 'label' => $name,
98 ];
99 }
100
101 return $options;
102 }
103
104 }
105