PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.19
ووسلام – همگام سازی ووکامرس و باسلام v1.10.19
1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 All 53 releases
sync-basalam / includes / Admin / Product / Data / Handlers / VariableProductHandler.php

VariableProductHandler.php in ووسلام – همگام سازی ووکامرس و باسلام 1.10.19, at includes/Admin/Product/Data/Handlers/VariableProductHandler.php

42 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SyncBasalam\Admin\Product\Data\Handlers;
4
5 use SyncBasalam\Admin\Product\Data\Services\VariantService;
6
7 defined('ABSPATH') || exit;
8
9 class VariableProductHandler extends SimpleProductHandler
10 {
11 private $variantService;
12
13 public function __construct()
14 {
15 parent::__construct();
16 $this->variantService = new VariantService();
17 }
18
19 public function getVariants($product): array
20 {
21 return $this->variantService->getVariants($product);
22 }
23
24 public function getSku($product): ?string
25 {
26 $sku = trim((string) $product->get_sku());
27 if ($sku !== '') return $sku;
28
29 // Variable products keep their SKUs at variation level (the parent SKU field
30 // is usually empty in WooCommerce), so resolve the product-level SKU from
31 // the first variation that has one.
32 foreach ($product->get_children() as $variationId) {
33 $variation = \wc_get_product($variationId);
34 if (!$variation) continue;
35
36 $variationSku = trim((string) $variation->get_sku());
37 if ($variationSku !== '') return $variationSku;
38 }
39
40 return null;
41 }
42 }