PluginProbe
MailerLite – WooCommerce integration / 3.1.25
MailerLite – WooCommerce integration v3.1.25
3.1.25 3.1.26 3.1.24 3.1.23 3.1.22 3.1.21 3.1.20 3.1.19 3.1.18 3.1.17 3.1.16 3.1.15 1.8.7 1.8.8 2.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 All 147 releases
woo-mailerlite / includes / common / traits / WooMailerLiteProductVariantsTrait.php

WooMailerLiteProductVariantsTrait.php in MailerLite – WooCommerce integration 3.1.25, at includes/common/traits/WooMailerLiteProductVariantsTrait.php

51 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 trait WooMailerLiteProductVariantsTrait
4 {
5 private function getProductVariants($resourceId)
6 {
7 $product = wc_get_product($resourceId);
8 if (!$product || !$product->is_type('variable')) {
9 return [];
10 }
11
12 $variants = [];
13 foreach ($product->get_children() as $variantId) {
14 $variant = wc_get_product($variantId);
15 if (!$variant) {
16 continue;
17 }
18
19 $variants[] = [
20 'resource_id' => (string) $variant->get_id(),
21 'name' => $variant->get_name(),
22 'price' => (float) $variant->get_price(),
23 'price_type' => 'fixed',
24 'attributes' => $this->formatVariantAttributes($variant),
25 'image_url' => $this->getVariantImageUrl($variant)
26 ];
27 }
28
29 return $variants;
30 }
31
32 private function getVariantImageUrl($variant)
33 {
34 if ($variant->get_image_id()) {
35 return wp_get_attachment_image_url($variant->get_image_id(), 'full');
36 }
37
38 return null;
39 }
40
41 private function formatVariantAttributes($variant)
42 {
43 $attributes = [];
44 foreach ($variant->get_attributes() as $key => $value) {
45 $attributes[str_replace('pa_', '', $key)] = $value;
46 }
47
48 return $attributes;
49 }
50 }
51