Plugin Directory

Changeset 3348044


Ignore:
Timestamp:
08/21/2025 10:36:32 AM (8 months ago)
Author:
productfeeder
Message:

Updated to version 4.2.0

Location:
product-feeder
Files:
13 added
3 edited

Legend:

Unmodified
Added
Removed
  • product-feeder/trunk/includes/product-feeder.php

    r3337282 r3348044  
    10091009                    if ($Options['Sizes'] == array('ONESIZE')) $VariationData['Size'] = 'ONESIZE';
    10101010                    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);
    10121012                        else {
    1013                             $VariationData['Size'] .= " ".$this->ResolveAttributeValue($attr_value);
     1013                            $VariationData['Size'] .= " ".$this->ResolveAttributeValue($attr_name, $attr_value);
    10141014                            $VariationData['Size'] = trim($VariationData['Size'], " ");
    10151015                        }
    10161016                    }
    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);
    10251025                }
    10261026            }
     
    10621062        }
    10631063
    1064         private function ResolveAttributeValue($Value) {
     1064        private function ResolveAttributeValue($Taxonomy, $Value) {
    10651065            if (is_object($Value)) return '';
    1066             if (!isset($this->AttributeDisplayValues[$Value])) {
     1066            if (!isset($this->AttributeDisplayValues[$Taxonomy]) || !isset($this->AttributeDisplayValues[$Taxonomy][$Value])) {
    10671067                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];
    10731073        }
    10741074
    10751075        private function GetCategoryPaths($ID) {
    1076             $TermsByID = array();
    1077             $IsFirstIteration = true;
    10781076            $CategoryPaths = array();
    1079             $CategoryPathsPrevious = array();
    10801077            $terms = get_the_terms($ID, 'product_cat');
    10811078            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);
    11081096            return $CategoryPaths;
    11091097        }
  • product-feeder/trunk/product-feeder.php

    r3337282 r3348044  
    55    * Plugin URI:       https://product-feeder.com/nl/sources/wordpress-woocommerce
    66    * 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.6
     7    * Version:          4.2.0
    88    * Author:           Product Feeder
    99    * Author URI:       https://product-feeder.com
  • product-feeder/trunk/readme.txt

    r3337283 r3348044  
    55Requires at least: 6.0
    66Tested up to: 6.8.2
    7 Stable tag: 4.1.6
     7Stable tag: 4.2.0
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    204204= 4.1.6 =
    205205* Enhanced functionality
     206
     207= 4.2.0 =
     208* Enhanced functionality
Note: See TracChangeset for help on using the changeset viewer.