Changeset 3348044
- Timestamp:
- 08/21/2025 10:36:32 AM (8 months ago)
- Location:
- product-feeder
- Files:
-
- 13 added
- 3 edited
-
tags/4.2.0 (added)
-
tags/4.2.0/includes (added)
-
tags/4.2.0/includes/css (added)
-
tags/4.2.0/includes/css/product-feeder.css (added)
-
tags/4.2.0/includes/javascript (added)
-
tags/4.2.0/includes/javascript/product-feeder.js (added)
-
tags/4.2.0/includes/product-feeder.php (added)
-
tags/4.2.0/languages (added)
-
tags/4.2.0/languages/product-feeder-nl_NL.mo (added)
-
tags/4.2.0/languages/product-feeder-nl_NL.po (added)
-
tags/4.2.0/product-feeder.php (added)
-
tags/4.2.0/readme.txt (added)
-
tags/4.2.0/uninstall.php (added)
-
trunk/includes/product-feeder.php (modified) (2 diffs)
-
trunk/product-feeder.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
product-feeder/trunk/includes/product-feeder.php
r3337282 r3348044 1009 1009 if ($Options['Sizes'] == array('ONESIZE')) $VariationData['Size'] = 'ONESIZE'; 1010 1010 else if (in_array($attr_name, $Options['Sizes'])) { 1011 if (empty($VariationData['Size'])) $VariationData['Size'] = $this->ResolveAttributeValue($attr_ value);1011 if (empty($VariationData['Size'])) $VariationData['Size'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1012 1012 else { 1013 $VariationData['Size'] .= " ".$this->ResolveAttributeValue($attr_ value);1013 $VariationData['Size'] .= " ".$this->ResolveAttributeValue($attr_name, $attr_value); 1014 1014 $VariationData['Size'] = trim($VariationData['Size'], " "); 1015 1015 } 1016 1016 } 1017 if (in_array($attr_name, $Options['Brand']) && empty($ProductData['Brand'])) $ProductData['Brand'] = $this->ResolveAttributeValue($attr_ value);1018 if (in_array($attr_name, $Options['EAN']) && empty($VariationData['EAN'])) $VariationData['EAN'] = $this->ResolveAttributeValue($attr_ value);1019 if (in_array($attr_name, $Options['Color']) && empty($VariationData['Color'])) $VariationData['Color'] = $this->ResolveAttributeValue($attr_ value);1020 if (in_array($attr_name, $Options['Season']) && empty($ProductData['Season'])) $ProductData['Season'] = $this->ResolveAttributeValue($attr_ value);1021 if (in_array($attr_name, $Options['Gender']) && empty($VariationData['Gender'])) $VariationData['Gender'] = $this->ResolveAttributeValue($attr_ value);1022 if (in_array($attr_name, $Options['Material']) && empty($VariationData['Material'])) $VariationData['Material'] = $this->ResolveAttributeValue($attr_ value);1023 if (in_array($attr_name, $Options['Condition']) && empty($VariationData['Condition'])) $VariationData['Condition'] = $this->ResolveAttributeValue($attr_ value);1024 if (in_array($attr_name, $Options['DeliveryTerms']) && empty($VariationData['DeliveryTerms'])) $VariationData['DeliveryTerms'] = $this->ResolveAttributeValue($attr_ value);1017 if (in_array($attr_name, $Options['Brand']) && empty($ProductData['Brand'])) $ProductData['Brand'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1018 if (in_array($attr_name, $Options['EAN']) && empty($VariationData['EAN'])) $VariationData['EAN'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1019 if (in_array($attr_name, $Options['Color']) && empty($VariationData['Color'])) $VariationData['Color'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1020 if (in_array($attr_name, $Options['Season']) && empty($ProductData['Season'])) $ProductData['Season'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1021 if (in_array($attr_name, $Options['Gender']) && empty($VariationData['Gender'])) $VariationData['Gender'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1022 if (in_array($attr_name, $Options['Material']) && empty($VariationData['Material'])) $VariationData['Material'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1023 if (in_array($attr_name, $Options['Condition']) && empty($VariationData['Condition'])) $VariationData['Condition'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1024 if (in_array($attr_name, $Options['DeliveryTerms']) && empty($VariationData['DeliveryTerms'])) $VariationData['DeliveryTerms'] = $this->ResolveAttributeValue($attr_name, $attr_value); 1025 1025 } 1026 1026 } … … 1062 1062 } 1063 1063 1064 private function ResolveAttributeValue($ Value) {1064 private function ResolveAttributeValue($Taxonomy, $Value) { 1065 1065 if (is_object($Value)) return ''; 1066 if (!isset($this->AttributeDisplayValues[$ Value])) {1066 if (!isset($this->AttributeDisplayValues[$Taxonomy]) || !isset($this->AttributeDisplayValues[$Taxonomy][$Value])) { 1067 1067 global $wpdb; 1068 $Term = $wpdb->get_results($wpdb->prepare("SELECT name FROM $wpdb->terms WHERE slug = %s", $Value), 'OBJECT');1069 if (isset($Term [0]) && isset($Term[0]->name)) $this->AttributeDisplayValues[$Value] = $Term[0]->name;1070 else $this->AttributeDisplayValues[$ Value] = $Value;1071 } 1072 return $this->AttributeDisplayValues[$ Value];1068 $Term = get_term_by( 'slug', $Value, $Taxonomy); 1069 if (isset($Term->name)) $this->AttributeDisplayValues[$Taxonomy][$Value] = $Term->name; 1070 else $this->AttributeDisplayValues[$Taxonomy][$Value] = $Value; 1071 } 1072 return $this->AttributeDisplayValues[$Taxonomy][$Value]; 1073 1073 } 1074 1074 1075 1075 private function GetCategoryPaths($ID) { 1076 $TermsByID = array();1077 $IsFirstIteration = true;1078 1076 $CategoryPaths = array(); 1079 $CategoryPathsPrevious = array();1080 1077 $terms = get_the_terms($ID, 'product_cat'); 1081 1078 if (is_array($terms)) { 1082 foreach ($terms as $term) $TermsByID[$term->term_id] = $term; 1083 for ($i = 0; !empty($TermsByID) && $i < 10; $i++) { 1084 $CategoryPaths = array(); 1085 $FoundPreviousCategoryPaths = array(); 1086 foreach ($TermsByID as $ID => $Term) { 1087 if ($IsFirstIteration && (!isset($TermsByID[$Term->parent]) && !isset($CategoryPaths[$Term->parent])) || $Term->parent == 0) { 1088 //THIS IS THE ROOT LEVEL AS WE HAVE NO PRESENT PARENT IN THE CATEGORY LIST 1089 $CategoryPaths[$Term->term_id] = str_replace(">", " - ", $Term->name); 1090 unset($TermsByID[$ID]); 1091 } 1092 else if (isset($CategoryPathsPrevious[$Term->parent])) { 1093 if (!in_array($Term->parent, $FoundPreviousCategoryPaths)) $FoundPreviousCategoryPaths[] = $Term->parent; 1094 //THIS IS THE CURRENT ROOT LEVEL AS WE HAVE NO PRESENT PARENT IN THE CATEGORY LIST ANYMORE (ALREADY ADDED TO CATEGORY PATHS BEFORE) 1095 $CategoryPaths[$Term->term_id] = $CategoryPathsPrevious[$Term->parent]." > ".str_replace(">", " - ", $Term->name); 1096 unset($TermsByID[$ID]); 1097 } 1098 } 1099 foreach ($CategoryPathsPrevious as $ID => $Path) { 1100 //CHECK ALL PREVIOUS PATHS IF THEY HAVE CHILDS FOUND. IF NOT PRESERVE THE PATH AS IT'S ALREADY THE LOWEST LEVEL FOR THIS PATH 1101 if (!in_array($ID, $FoundPreviousCategoryPaths)) $CategoryPaths[] = $Path; 1102 } 1103 $CategoryPathsPrevious = $CategoryPaths; 1104 $IsFirstIteration = false; 1105 } 1106 sort($CategoryPaths); 1107 } 1079 foreach ($terms as $term) { 1080 $FullCategoryPath = get_term_parents_list($term->term_id, 'product_cat', array('separator' => ' > ', 'link' => false, 'format' => 'name')); 1081 if (!empty($FullCategoryPath) && is_string($FullCategoryPath)) $CategoryPaths[] = rtrim($FullCategoryPath, ' > '); 1082 } 1083 } 1084 //GET ONLY THE LOWEST CATEGORY LEVELS (REMOVE PARENTS THAT ARE IN THE LIST BY ITSELF) 1085 foreach ($CategoryPaths as $Nr => $CategoryPath) { 1086 $IsParent = false; 1087 foreach ($CategoryPaths as $NrSub => $CategoryPathSub) { 1088 if ($Nr != $NrSub) { 1089 $IsParent = preg_match("/".preg_quote($CategoryPath, "/")." > /i", $CategoryPathSub); 1090 break; 1091 } 1092 } 1093 if ($IsParent) unset($CategoryPaths[$Nr]); 1094 } 1095 sort($CategoryPaths); 1108 1096 return $CategoryPaths; 1109 1097 } -
product-feeder/trunk/product-feeder.php
r3337282 r3348044 5 5 * Plugin URI: https://product-feeder.com/nl/sources/wordpress-woocommerce 6 6 * Description: Connect with various marketplaces for automated synchronization of products, orders and returns! Try it now at https://product-feeder.com 7 * Version: 4. 1.67 * Version: 4.2.0 8 8 * Author: Product Feeder 9 9 * Author URI: https://product-feeder.com -
product-feeder/trunk/readme.txt
r3337283 r3348044 5 5 Requires at least: 6.0 6 6 Tested up to: 6.8.2 7 Stable tag: 4. 1.67 Stable tag: 4.2.0 8 8 Requires PHP: 7.4 9 9 License: GPLv2 or later … … 204 204 = 4.1.6 = 205 205 * Enhanced functionality 206 207 = 4.2.0 = 208 * Enhanced functionality
Note: See TracChangeset
for help on using the changeset viewer.