Plugin Directory

Changeset 3437505


Ignore:
Timestamp:
01/12/2026 09:24:47 AM (2 months ago)
Author:
rextheme
Message:

Tagging version 7.4.61

Location:
best-woocommerce-feed
Files:
14 edited
1 copied

Legend:

Unmodified
Added
Removed
  • best-woocommerce-feed/tags/7.4.61/README.txt

    r3430074 r3437505  
    77Tested up to:  6.9
    88Requires PHP: 7.4
    9 Stable tag:  7.4.60
     9Stable tag:  7.4.61
    1010License: GPLv2 or later
    1111License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    517517= Product feed manager (Free) =
    518518
     519= 7.4.61 (2026-01-12) =
     520* Bug Fix: Broken product Cart, Checkout, Review, Product, and related URLs issue
     521* Bug Fix: Currency prefix/ suffix display issue
     522* Improvement: Enhanced OpenPanel integration to track feed settings
     523
    519524= 7.4.60 (2025-12-31) =
    520525* Improvement: Google content API currency symbol
    521526* Improvement: Variations not included in custom feed during scheduled updates
    522527
     528= 7.4.59 (2025-12-19) =
     529* New: Feed Validator for Facebook Catalog
     530* New: Feed Validator for Google Shipping
     531* Improvement: Increased Yandex YML "param" limit
     532* Improvement: Optimise schedule feed generation
     533
     534= 7.4.58 (2025-12-11) =
     535* New: ChatGPT(OpenAI) feed template
     536* Improvement: TikTok Ads Catalog feed: <condition> param support
     537* Improvement: Yandex YML feed: <param name>, <param unit>, and <param value> support
     538* Improvement: Guided Tour for better onboarding
     539
     540= 7.4.57 (2025-12-04) =
     541* Bug Fix: PFM information appears twice in the system status
     542* Bug Fix: PHP deprecation Issue on Node file
     543* Bug Fix: YITH WooCommerce Product Bundles not included in the feed
     544
    523545* [Visit to see what's new in free version](https://rextheme.com/changelog/?plugin=product-feed-manager-for-woocommerce)
    524546
  • best-woocommerce-feed/tags/7.4.61/admin/class-rex-product-data-retriever.php

    r3430074 r3437505  
    30113011        $feed_currency = $this->get_feed_currency();
    30123012
    3013         // List of price-related meta keys
    3014         $price_meta_keys = [
    3015             'price',
    3016             'current_price',
    3017             'sale_price',
    3018             'price_with_tax',
    3019             'current_price_with_tax',
    3020             'sale_price_with_tax',
    3021             'price_excl_tax',
    3022             'current_price_excl_tax',
    3023             'sale_price_excl_tax',
    3024             'price_db',
    3025             'current_price_db',
    3026             'sale_price_db',
    3027         ];
    3028 
    3029         // If the merchant is Google and the meta_key is price-related, do not add the currency suffix.
    3030         if ( 'google' === $this->feed->merchant && in_array( $rule['meta_key'], $price_meta_keys, true ) ) {
    3031             $suffix = '';
    3032         }
    3033 
    30343013        if ( !empty( $prefix ) ) {
    3035             $val = $val ? $prefix . $val : '';
    3036             if(wpfm_is_curcy_active()  && isset($this->curcy_currency)){
    3037                 $val = $val ? $this->curcy_currency.' ' .$val : '';
    3038             }
     3014            if(!empty($feed_currency)){
     3015                $val = $val ? $feed_currency.' ' .$val : '';
     3016            }else{
     3017                $val = $val ? $prefix . $val : '';
     3018            }
    30393019        }
    30403020
    30413021        if ( !empty( $suffix ) ) {
    3042             if(wpfm_is_curcy_active()  && isset($this->curcy_currency)){
    3043                 $val =  $val ? $val .' '. $this->curcy_currency : '';
     3022            if(!empty($feed_currency)){
     3023                $val =  $val ? $val .' '. $feed_currency : '';
    30443024            }else{
    30453025                $val = $val ? $val . $suffix : '';
    30463026            }
    3047         }
    3048 
    3049         if ( ! empty( $feed_currency ) && isset( $rule[ 'attr' ] ) && str_contains( $rule[ 'attr' ], 'price' ) ) {
    3050             if ( strpos( $val, $feed_currency ) === false ) {
    3051                 $val = $val ? $val . ' ' . $feed_currency : '';
    3052             }
    30533027        }
    30543028
     
    33773351
    33783352            $value = $this->tab_replace( $value );
     3353
    33793354        }
    33803355        return $value;
     
    34143389            return $this->wcml_currency;
    34153390        }
    3416         return get_woocommerce_currency();
     3391        return '';
    34173392    }
    34183393
  • best-woocommerce-feed/tags/7.4.61/admin/class-rex-product-feed-handle-data.php

    r3400153 r3437505  
    109109        }
    110110        if( isset( $data[ 'rex_feed_products' ] ) ) {
     111
     112            // Map select values to human-readable feature names
     113            $filter_names = array(
     114                'all'            => 'All Published Products Filter',
     115                'featured'       => 'All Featured Products Filter',
     116                'product_cat'    => 'Category Filter',
     117                'product_tag'    => 'Tag Filter',
     118                'product_brand'  => 'Brand Filter',
     119                'product_filter' => 'Product Filter',
     120            );
     121           
     122            $filter_value = $data[ 'rex_feed_products' ];
     123            $feature_name = isset( $filter_names[ $filter_value ] ) ? $filter_names[ $filter_value ] : $filter_value;
     124           
     125            do_action( 'rex_product_feed_advanced_feature_used', $feed_id, [
     126                'feature' => $feature_name,
     127            ] );
     128
    111129            update_post_meta( $feed_id, '_rex_feed_products', $data[ 'rex_feed_products' ] );
    112130        }
     
    479497        }
    480498
     499        // Send settings options data to OpenPanel via action hook.
     500        $features    = [];
     501        $feature_map = [
     502            'rex_feed_schedule'                    => 'Schedule Feed: ' . $data['rex_feed_schedule'],
     503            'rex_feed_include_out_of_stock'        => 'Include Out of Stock Products',
     504            'rex_feed_variable_product'            => 'Variable Product',
     505            'rex_feed_variations'                  => 'Include Variations',
     506            'rex_feed_default_variation'           => 'Include Default Variation',
     507            'rex_feed_highest_variation'           => 'Include Highest Variation',
     508            'rex_feed_cheapest_variation'          => 'Include Cheapest Variation',
     509            'rex_feed_first_variation'             => 'Include First Variation',
     510            'rex_feed_last_variation'              => 'Include Last Variation',
     511            'rex_feed_parent_product'              => 'Include Parent Product',
     512            'rex_feed_variation_product_name'      => 'Variation Product Name',
     513            'rex_feed_hidden_products'             => 'Include Hidden Products',
     514            'rex_feed_exclude_simple_products'     => 'Exclude Simple Products',
     515            'rex_feed_skip_product'                => 'Skip Product',
     516            'rex_feed_skip_row'                    => 'Skip Row',
     517            'rex_feed_include_zero_price_products' => 'Include Products with No Price',
     518            'rex_feed_analytics_params_options'    => 'Google Analytics Params: ',
     519            'rex_feed_curcy_currency'              => 'CURCY - Multi Currency',
     520            'rex_feed_wmc_currency'                => 'WooCommerce Multi-Currency',
     521            'rex_feed_wcml_currency'               => 'WooCommerce Multilingual',
     522            'rex_feed_feed_country'                => 'Feed Country',
     523            'rex_feed_tax_id'                      => 'Tax ID',
     524            'rex_feed_is_google_content_api'       => 'Google Content API',
     525            'rex_feed_translate_press_language'    => 'TranslatePress Language',
     526        ];
     527
     528        foreach ( $feature_map as $key => $label ) {
     529            if ( isset( $data[ $key ] ) && 'no' !== $data[ $key ] ) {
     530                $features[] = $label;
     531            }
     532        }
     533
     534        foreach ( $features as $label ) {
     535            do_action( 'rex_product_feed_advanced_feature_used', $feed_id, [
     536                'feature_setting' => $label,
     537            ] );
     538        }
     539
    481540    }
    482541}
  • best-woocommerce-feed/tags/7.4.61/admin/feed/abstract-rex-product-feed-generator.php

    r3416948 r3437505  
    15611561            'google_shopping_actions', 'google_express', 'doofinder', 'emarts', 'epoq', 'google_local_products_inventory',
    15621562            'google_merchant_promotion', 'google_manufacturer_center', 'bing_image', 'rss', 'criteo', 'adcrowd',
    1563             'google_local_inventory_ads', 'compartner', 'bing', 'openai'
     1563            'google_local_inventory_ads', 'compartner', 'bing', 'openai', 'google_css_center', 'temu_seller_center'
    15641564        ];
    15651565
  • best-woocommerce-feed/tags/7.4.61/includes/library/GoogleShoppingFeed/Feed.php

    r3416948 r3437505  
    369369        if (ob_get_contents()) ob_end_clean();
    370370        $this->addItemsToFeed();
    371         $data = html_entity_decode($this->feed->asXml());
     371        $data = $this->feed->asXml();
    372372        if ($output) {
    373373            header('Content-Type: application/xml; charset=utf-8');
  • best-woocommerce-feed/tags/7.4.61/rex-product-feed.php

    r3430074 r3437505  
    1616 * Plugin URI:        https://rextheme.com
    1717 * Description:       Generate and maintain your WooCommerce product feed for Google Shopping, Social Catalogs, Yandex, Idealo, Vivino, Pinterest, eBay MIP, BestPrice, Skroutz, Fruugo, Bonanza & 200+ Merchants.
    18  * Version:           7.4.60
     18 * Version:           7.4.61
    1919 * Author:            RexTheme
    2020 * Author URI:        https://rextheme.com
     
    4141}
    4242if( !defined( 'WPFM_VERSION' ) ) {
    43     define( 'WPFM_VERSION', '7.4.60' );
     43    define( 'WPFM_VERSION', '7.4.61' );
    4444}
    4545if ( !defined( 'WPFM__FILE__' ) ) {
  • best-woocommerce-feed/tags/7.4.61/vendor/composer/installed.php

    r3430074 r3437505  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'a210fcace0e55b2fa9f9ee87b82830f162be06a9',
     6        'reference' => '2d8ebfc8d0621239bffdc25dc075ca04db809a88',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    4343            'pretty_version' => 'dev-master',
    4444            'version' => 'dev-master',
    45             'reference' => 'a210fcace0e55b2fa9f9ee87b82830f162be06a9',
     45            'reference' => '2d8ebfc8d0621239bffdc25dc075ca04db809a88',
    4646            'type' => 'wordpress-plugin',
    4747            'install_path' => __DIR__ . '/../../',
  • best-woocommerce-feed/trunk/README.txt

    r3430074 r3437505  
    77Tested up to:  6.9
    88Requires PHP: 7.4
    9 Stable tag:  7.4.60
     9Stable tag:  7.4.61
    1010License: GPLv2 or later
    1111License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    517517= Product feed manager (Free) =
    518518
     519= 7.4.61 (2026-01-12) =
     520* Bug Fix: Broken product Cart, Checkout, Review, Product, and related URLs issue
     521* Bug Fix: Currency prefix/ suffix display issue
     522* Improvement: Enhanced OpenPanel integration to track feed settings
     523
    519524= 7.4.60 (2025-12-31) =
    520525* Improvement: Google content API currency symbol
    521526* Improvement: Variations not included in custom feed during scheduled updates
    522527
     528= 7.4.59 (2025-12-19) =
     529* New: Feed Validator for Facebook Catalog
     530* New: Feed Validator for Google Shipping
     531* Improvement: Increased Yandex YML "param" limit
     532* Improvement: Optimise schedule feed generation
     533
     534= 7.4.58 (2025-12-11) =
     535* New: ChatGPT(OpenAI) feed template
     536* Improvement: TikTok Ads Catalog feed: <condition> param support
     537* Improvement: Yandex YML feed: <param name>, <param unit>, and <param value> support
     538* Improvement: Guided Tour for better onboarding
     539
     540= 7.4.57 (2025-12-04) =
     541* Bug Fix: PFM information appears twice in the system status
     542* Bug Fix: PHP deprecation Issue on Node file
     543* Bug Fix: YITH WooCommerce Product Bundles not included in the feed
     544
    523545* [Visit to see what's new in free version](https://rextheme.com/changelog/?plugin=product-feed-manager-for-woocommerce)
    524546
  • best-woocommerce-feed/trunk/admin/class-rex-product-data-retriever.php

    r3430074 r3437505  
    30113011        $feed_currency = $this->get_feed_currency();
    30123012
    3013         // List of price-related meta keys
    3014         $price_meta_keys = [
    3015             'price',
    3016             'current_price',
    3017             'sale_price',
    3018             'price_with_tax',
    3019             'current_price_with_tax',
    3020             'sale_price_with_tax',
    3021             'price_excl_tax',
    3022             'current_price_excl_tax',
    3023             'sale_price_excl_tax',
    3024             'price_db',
    3025             'current_price_db',
    3026             'sale_price_db',
    3027         ];
    3028 
    3029         // If the merchant is Google and the meta_key is price-related, do not add the currency suffix.
    3030         if ( 'google' === $this->feed->merchant && in_array( $rule['meta_key'], $price_meta_keys, true ) ) {
    3031             $suffix = '';
    3032         }
    3033 
    30343013        if ( !empty( $prefix ) ) {
    3035             $val = $val ? $prefix . $val : '';
    3036             if(wpfm_is_curcy_active()  && isset($this->curcy_currency)){
    3037                 $val = $val ? $this->curcy_currency.' ' .$val : '';
    3038             }
     3014            if(!empty($feed_currency)){
     3015                $val = $val ? $feed_currency.' ' .$val : '';
     3016            }else{
     3017                $val = $val ? $prefix . $val : '';
     3018            }
    30393019        }
    30403020
    30413021        if ( !empty( $suffix ) ) {
    3042             if(wpfm_is_curcy_active()  && isset($this->curcy_currency)){
    3043                 $val =  $val ? $val .' '. $this->curcy_currency : '';
     3022            if(!empty($feed_currency)){
     3023                $val =  $val ? $val .' '. $feed_currency : '';
    30443024            }else{
    30453025                $val = $val ? $val . $suffix : '';
    30463026            }
    3047         }
    3048 
    3049         if ( ! empty( $feed_currency ) && isset( $rule[ 'attr' ] ) && str_contains( $rule[ 'attr' ], 'price' ) ) {
    3050             if ( strpos( $val, $feed_currency ) === false ) {
    3051                 $val = $val ? $val . ' ' . $feed_currency : '';
    3052             }
    30533027        }
    30543028
     
    33773351
    33783352            $value = $this->tab_replace( $value );
     3353
    33793354        }
    33803355        return $value;
     
    34143389            return $this->wcml_currency;
    34153390        }
    3416         return get_woocommerce_currency();
     3391        return '';
    34173392    }
    34183393
  • best-woocommerce-feed/trunk/admin/class-rex-product-feed-handle-data.php

    r3400153 r3437505  
    109109        }
    110110        if( isset( $data[ 'rex_feed_products' ] ) ) {
     111
     112            // Map select values to human-readable feature names
     113            $filter_names = array(
     114                'all'            => 'All Published Products Filter',
     115                'featured'       => 'All Featured Products Filter',
     116                'product_cat'    => 'Category Filter',
     117                'product_tag'    => 'Tag Filter',
     118                'product_brand'  => 'Brand Filter',
     119                'product_filter' => 'Product Filter',
     120            );
     121           
     122            $filter_value = $data[ 'rex_feed_products' ];
     123            $feature_name = isset( $filter_names[ $filter_value ] ) ? $filter_names[ $filter_value ] : $filter_value;
     124           
     125            do_action( 'rex_product_feed_advanced_feature_used', $feed_id, [
     126                'feature' => $feature_name,
     127            ] );
     128
    111129            update_post_meta( $feed_id, '_rex_feed_products', $data[ 'rex_feed_products' ] );
    112130        }
     
    479497        }
    480498
     499        // Send settings options data to OpenPanel via action hook.
     500        $features    = [];
     501        $feature_map = [
     502            'rex_feed_schedule'                    => 'Schedule Feed: ' . $data['rex_feed_schedule'],
     503            'rex_feed_include_out_of_stock'        => 'Include Out of Stock Products',
     504            'rex_feed_variable_product'            => 'Variable Product',
     505            'rex_feed_variations'                  => 'Include Variations',
     506            'rex_feed_default_variation'           => 'Include Default Variation',
     507            'rex_feed_highest_variation'           => 'Include Highest Variation',
     508            'rex_feed_cheapest_variation'          => 'Include Cheapest Variation',
     509            'rex_feed_first_variation'             => 'Include First Variation',
     510            'rex_feed_last_variation'              => 'Include Last Variation',
     511            'rex_feed_parent_product'              => 'Include Parent Product',
     512            'rex_feed_variation_product_name'      => 'Variation Product Name',
     513            'rex_feed_hidden_products'             => 'Include Hidden Products',
     514            'rex_feed_exclude_simple_products'     => 'Exclude Simple Products',
     515            'rex_feed_skip_product'                => 'Skip Product',
     516            'rex_feed_skip_row'                    => 'Skip Row',
     517            'rex_feed_include_zero_price_products' => 'Include Products with No Price',
     518            'rex_feed_analytics_params_options'    => 'Google Analytics Params: ',
     519            'rex_feed_curcy_currency'              => 'CURCY - Multi Currency',
     520            'rex_feed_wmc_currency'                => 'WooCommerce Multi-Currency',
     521            'rex_feed_wcml_currency'               => 'WooCommerce Multilingual',
     522            'rex_feed_feed_country'                => 'Feed Country',
     523            'rex_feed_tax_id'                      => 'Tax ID',
     524            'rex_feed_is_google_content_api'       => 'Google Content API',
     525            'rex_feed_translate_press_language'    => 'TranslatePress Language',
     526        ];
     527
     528        foreach ( $feature_map as $key => $label ) {
     529            if ( isset( $data[ $key ] ) && 'no' !== $data[ $key ] ) {
     530                $features[] = $label;
     531            }
     532        }
     533
     534        foreach ( $features as $label ) {
     535            do_action( 'rex_product_feed_advanced_feature_used', $feed_id, [
     536                'feature_setting' => $label,
     537            ] );
     538        }
     539
    481540    }
    482541}
  • best-woocommerce-feed/trunk/admin/feed/abstract-rex-product-feed-generator.php

    r3416948 r3437505  
    15611561            'google_shopping_actions', 'google_express', 'doofinder', 'emarts', 'epoq', 'google_local_products_inventory',
    15621562            'google_merchant_promotion', 'google_manufacturer_center', 'bing_image', 'rss', 'criteo', 'adcrowd',
    1563             'google_local_inventory_ads', 'compartner', 'bing', 'openai'
     1563            'google_local_inventory_ads', 'compartner', 'bing', 'openai', 'google_css_center', 'temu_seller_center'
    15641564        ];
    15651565
  • best-woocommerce-feed/trunk/includes/library/GoogleShoppingFeed/Feed.php

    r3416948 r3437505  
    369369        if (ob_get_contents()) ob_end_clean();
    370370        $this->addItemsToFeed();
    371         $data = html_entity_decode($this->feed->asXml());
     371        $data = $this->feed->asXml();
    372372        if ($output) {
    373373            header('Content-Type: application/xml; charset=utf-8');
  • best-woocommerce-feed/trunk/rex-product-feed.php

    r3430074 r3437505  
    1616 * Plugin URI:        https://rextheme.com
    1717 * Description:       Generate and maintain your WooCommerce product feed for Google Shopping, Social Catalogs, Yandex, Idealo, Vivino, Pinterest, eBay MIP, BestPrice, Skroutz, Fruugo, Bonanza & 200+ Merchants.
    18  * Version:           7.4.60
     18 * Version:           7.4.61
    1919 * Author:            RexTheme
    2020 * Author URI:        https://rextheme.com
     
    4141}
    4242if( !defined( 'WPFM_VERSION' ) ) {
    43     define( 'WPFM_VERSION', '7.4.60' );
     43    define( 'WPFM_VERSION', '7.4.61' );
    4444}
    4545if ( !defined( 'WPFM__FILE__' ) ) {
  • best-woocommerce-feed/trunk/vendor/composer/installed.php

    r3430074 r3437505  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'a210fcace0e55b2fa9f9ee87b82830f162be06a9',
     6        'reference' => '2d8ebfc8d0621239bffdc25dc075ca04db809a88',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    4343            'pretty_version' => 'dev-master',
    4444            'version' => 'dev-master',
    45             'reference' => 'a210fcace0e55b2fa9f9ee87b82830f162be06a9',
     45            'reference' => '2d8ebfc8d0621239bffdc25dc075ca04db809a88',
    4646            'type' => 'wordpress-plugin',
    4747            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.