Plugin Directory

Changeset 3420288


Ignore:
Timestamp:
12/15/2025 03:38:34 PM (4 months ago)
Author:
sendsmaily
Message:

Release 1.6.0, see readme.txt for the changelog.

Location:
smaily-connect
Files:
39 edited
1 copied

Legend:

Unmodified
Added
Removed
  • smaily-connect/tags/1.6.0/admin/js/smaily-admin.js

    r3340411 r3420288  
    2626            }
    2727
     28            var tax_rate = $('#smaily-rss-tax-rate').val()
     29            if (tax_rate != '') {
     30                rss_url.searchParams.set('tax_rate', tax_rate);
     31            }
     32
    2833            $('#smaily-rss-feed-url').html(rss_url.href)
    2934        });
  • smaily-connect/tags/1.6.0/admin/smaily-admin-renderer.class.php

    r3357762 r3420288  
    258258            get_option( Options::RSS_LIMIT_OPTION, null ),
    259259            get_option( Options::RSS_SORT_BY_OPTION, null ),
    260             get_option( Options::RSS_ORDER_BY_OPTION, null )
     260            get_option( Options::RSS_ORDER_BY_OPTION, null ),
     261            get_option( Options::RSS_TAX_RATE, null )
    261262        );
    262263        ?>
     
    337338        $help  = $args['help'] ?? '';
    338339        $class = $args['class'] ?? '';
     340        $step  = $args['step'] ?? '';
    339341        ?>
    340342        <fieldset>
     
    342344                <input
    343345                    type="number"
     346                    step="<?php echo esc_attr( $step ); ?>"
    344347                    id="<?php echo esc_attr( $id ); ?>"
    345348                    class="<?php echo esc_attr( $class ); ?>"
  • smaily-connect/tags/1.6.0/admin/smaily-admin-settings.class.php

    r3388946 r3420288  
    348348                'sanitize_callback' => 'sanitize_text_field',
    349349                'default'           => Options::RSS_DEFAULT_ORDER_BY,
     350            )
     351        );
     352
     353        $store_default_tax_rate = null;
     354        if ( wc_tax_enabled() ) {
     355            $rates = \WC_Tax::get_base_tax_rates();
     356            foreach ( $rates as $rate ) {
     357                if ( array_key_exists( 'rate', $rate ) ) {
     358                    $store_default_tax_rate = $rate['rate'];
     359                    break;
     360                }
     361            }
     362        }
     363
     364        register_setting(
     365            $option_group,
     366            Options::RSS_TAX_RATE,
     367            array(
     368                'type'              => 'number',
     369                'sanitize_callback' => 'sanitize_text_field',
     370                'default'           => $store_default_tax_rate ?? Options::RSS_DEFAULT_TAX_RATE,
    350371            )
    351372        );
     
    453474
    454475        add_settings_field(
     476            Options::RSS_TAX_RATE,
     477            __( 'Tax Rate (%)', 'smaily-connect' ),
     478            array( $this->renderer, 'render_number_field' ),
     479            $page,
     480            $rss_section,
     481            array(
     482                'option_name' => Options::RSS_TAX_RATE,
     483                'min'         => 0,
     484                'help'        => __( 'Set the item tax rate as a percentage.', 'smaily-connect' ),
     485                'class'       => 'smaily-rss-options',
     486                'id'          => 'smaily-rss-tax-rate',
     487                'step'        => '0.01',
     488            )
     489        );
     490
     491        add_settings_field(
    455492            Options::RSS_URL_OPTION,
    456493            __( 'Product RSS feed', 'smaily-connect' ),
  • smaily-connect/tags/1.6.0/includes/smaily-options.class.php

    r3388946 r3420288  
    9292
    9393    /**
     94     * Default RSS feed store tax rate.
     95     *
     96     * @var array
     97     */
     98    const RSS_DEFAULT_TAX_RATE = 0;
     99
     100    /**
    94101     * Default RSS feed sort by.
    95102     *
     
    118125    const RSS_SORT_BY_OPTION                    = 'smaily_connect_rss_sort_by';
    119126    const RSS_ORDER_BY_OPTION                   = 'smaily_connect_rss_order_by';
     127    const RSS_TAX_RATE                          = 'smaily_connect_rss_tax_rate';
    120128    const RSS_URL_OPTION                        = 'smaily_connect_rss_url';
    121129    const DATABASE_VERSION_OPTION               = 'smaily_connect_db_version';
     
    143151        self::RSS_ORDER_BY_OPTION,
    144152        self::RSS_URL_OPTION,
     153        self::RSS_TAX_RATE,
    145154        self::DATABASE_VERSION_OPTION,
    146155        self::CONTACT_FORM_7_STATUS_OPTION,
  • smaily-connect/tags/1.6.0/integrations/elementor/newsletter-widget.class.php

    r3375462 r3420288  
    123123        $settings_for_display = $this->get_settings_for_display();
    124124        $parameters           = array(
    125             'autoresponder_id'  => $settings_for_display['autoresponder_id'] ?? '',
    126             'button_text'       => $settings_for_display['button_text'] ?? '',
    127             'email_label'       => $settings_for_display['email_label'] ?? '',
    128             'email_placeholder' => $settings_for_display['email_placeholder'] ?? '',
    129             'error_message'     => $settings_for_display['error_message'] ?? '',
    130             'language_code'     => Helper::get_current_language_code(),
    131             'failure_url'       => $settings_for_display['failure_url']['url'] ?? Helper::get_current_url(),
    132             'name_label'        => $settings_for_display['name_label'] ?? '',
    133             'name_placeholder'  => $settings_for_display['name_placeholder'] ?? '',
    134             'show_name'         => $settings_for_display['show_name'] === 'yes',
    135             'subdomain'         => $options->get_subdomain(),
    136             'success_message'   => $settings_for_display['success_message'] ?? '',
    137             'success_url'       => $settings_for_display['success_url']['url'] ?? Helper::get_current_url(),
     125            'autoresponder_id'     => $settings_for_display['autoresponder_id'] ?? '',
     126            'button_text'          => $settings_for_display['button_text'] ?? '',
     127            'email_label'          => $settings_for_display['email_label'] ?? '',
     128            'email_placeholder'    => $settings_for_display['email_placeholder'] ?? '',
     129            'error_message'        => $settings_for_display['error_message'] ?? '',
     130            'language_code'        => Helper::get_current_language_code(),
     131            'failure_url'          => $settings_for_display['failure_url']['url'] ?? Helper::get_current_url(),
     132            'name_label'           => $settings_for_display['name_label'] ?? '',
     133            'name_placeholder'     => $settings_for_display['name_placeholder'] ?? '',
     134            'show_name'            => $settings_for_display['show_name'] === 'yes',
     135            'subdomain'            => $options->get_subdomain(),
     136            'success_message'      => $settings_for_display['success_message'] ?? '',
     137            'success_url'          => $settings_for_display['success_url']['url'] ?? Helper::get_current_url(),
     138            'custom_hidden_fields' => $settings_for_display['custom_hidden_fields'] ?? array(),
    138139        );
    139140
     
    193194                    value="<?php echo ! empty( $parameters['success_url'] ) ? esc_url( $parameters['success_url'] ) : esc_url( $current_url ); ?>"
    194195                >
     196                <?php foreach ( $parameters['custom_hidden_fields'] as $custom_hidden_field ) : ?>
     197                    <?php
     198                    $field_name  = isset( $custom_hidden_field['field_name'] ) ? sanitize_text_field( $custom_hidden_field['field_name'] ) : '';
     199                    $field_value = isset( $custom_hidden_field['field_value'] ) ? sanitize_text_field( $custom_hidden_field['field_value'] ) : '';
     200                    ?>
     201                    <?php if ( ! empty( $field_name ) ) : ?>
     202                        <input
     203                            type="hidden"
     204                            name="<?php echo esc_attr( $field_name ); ?>"
     205                            value="<?php echo esc_attr( $field_value ); ?>"
     206                        >
     207                    <?php endif; ?>
     208                <?php endforeach; ?>
    195209                <div class="smaily-connect-elementor-newsletter-form-visible-fields">
    196210                    <div class="smaily-connect-elementor-newsletter-form-input-container">
     
    496510                'default'     => array(
    497511                    'url' => '',
    498 
    499512                ),
    500513                'description' => __( 'Note: URLs are optional. If left empty, the current page URL will be used.', 'smaily-connect' ),
    501514                'options'     => false,
    502515                'placeholder' => __( 'Enter failure URL', 'smaily-connect' ),
     516            )
     517        );
     518
     519        $this->add_control(
     520            'custom_hidden_fields',
     521            array(
     522                'label'         => __( 'Custom Fields', 'smaily-connect' ),
     523                'type'          => Controls_Manager::REPEATER,
     524                'fields'        => array(
     525                    array(
     526                        'name'        => 'field_name',
     527                        'label'       => __( 'Name', 'smaily-connect' ),
     528                        'type'        => Controls_Manager::TEXT,
     529                        'default'     => '',
     530                        'placeholder' => __( 'Enter field name', 'smaily-connect' ),
     531                    ),
     532                    array(
     533                        'name'        => 'field_value',
     534                        'label'       => __( 'Value', 'smaily-connect' ),
     535                        'type'        => Controls_Manager::TEXT,
     536                        'default'     => '',
     537                        'placeholder' => __( 'Enter field value', 'smaily-connect' ),
     538                    ),
     539                ),
     540                'prevent_empty' => false,
     541                'title_field'   => '{{ field_name }}',
     542                'description'   => __( 'Add custom hidden fields to include additional data in the subscription.', 'smaily-connect' ),
    503543            )
    504544        );
  • smaily-connect/tags/1.6.0/integrations/woocommerce/helper.class.php

    r3385821 r3420288  
    88     *
    99     * @param \WC_Product $product
     10     * @param float|null $tax_rate Tax rate as percentage.
    1011     * @return float
    1112     */
    12     public static function get_current_price_with_tax( $product ) {
     13    public static function get_current_price_with_tax( $product, $tax_rate = null ) {
     14        if ( $tax_rate !== null ) {
     15            $price_excl_tax = wc_get_price_excluding_tax( $product, array( 'price' => $product->get_price() ) );
     16            return self::calculate_price_on_tax_rate( $price_excl_tax, $tax_rate );
     17        }
     18
    1319        $current_price_with_tax = wc_get_price_to_display( $product, array( 'price' => $product->get_price() ) );
    1420
     
    2531     *
    2632     * @param \WC_Product $product
     33     * @param float|null $tax_rate Tax rate as percentage.
    2734     * @return float
    2835     */
    29     public static function get_regular_price_with_tax( $product ) {
     36    public static function get_regular_price_with_tax( $product, $tax_rate = null ) {
     37        if ( $tax_rate !== null ) {
     38            $price_excl_tax = wc_get_price_excluding_tax( $product, array( 'price' => $product->get_regular_price() ) );
     39            return self::calculate_price_on_tax_rate( $price_excl_tax, $tax_rate );
     40        }
     41
    3042        return wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
    3143    }
     
    6274        }
    6375    }
     76
     77    /**
     78     * Calculates the price price based on the given tax rate.
     79     * This is used when the tax rate is provided externally rather than relying on WooCommerce's tax settings.
     80     *
     81     * @param float $base_price
     82     * @param float $tax_rate
     83     * @return float
     84     */
     85    private static function calculate_price_on_tax_rate( $base_price, $tax_rate ) {
     86        $tax_multiplier = 1 + ( $tax_rate / 100 );
     87
     88        return round( $base_price * $tax_multiplier, wc_get_price_decimals() );
     89    }
    6490}
  • smaily-connect/tags/1.6.0/integrations/woocommerce/rss.class.php

    r3385821 r3420288  
    3232     * @return string
    3333     */
    34     public static function make_rss_feed_url( $rss_category = null, $rss_limit = null, $rss_order_by = null, $rss_order = null ) {
     34    public static function make_rss_feed_url(
     35        $rss_category = null,
     36        $rss_limit = null,
     37        $rss_order_by = null,
     38        $rss_order = null,
     39        $tax_rate = null
     40    ) {
    3541        global $wp_rewrite;
    3642
     
    4955        if ( isset( $rss_order ) && $rss_order_by !== 'none' ) {
    5056            $parameters['order'] = $rss_order;
     57        }
     58        if ( isset( $tax_rate ) ) {
     59            $parameters['tax_rate'] = $tax_rate;
    5160        }
    5261
     
    8392        $vars[] = 'order_by';
    8493        $vars[] = 'order';
     94        $vars[] = 'tax_rate';
    8595        return $vars;
    8696    }
     
    127137     * @param string $order_by
    128138     * @param string $order
     139     * @param float|null $tax_rate
    129140     * @return array{created_at: string, current_price: string, description: string, discount: float, enclosure_url: string, regular_price: string, title: string, url: string}
    130141     */
    131     public static function list_rss_feed_items( $category, $limit, $order_by, $order ) {
     142    public static function list_rss_feed_items( $category, $limit, $order_by, $order, $tax_rate ) {
    132143        $products = Data_Handler::get_products( $category, $limit, $order_by, $order );
    133144        $items    = array();
     
    139150            }
    140151
    141             $current_price = Helper::get_current_price_with_tax( $product );
    142             $regular_price = Helper::get_regular_price_with_tax( $product );
     152            $current_price = Helper::get_current_price_with_tax( $product, $tax_rate );
     153            $regular_price = Helper::get_regular_price_with_tax( $product, $tax_rate );
    143154            $url           = get_permalink( $product->get_id() );
    144155
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-152dc44ca25a3f1e171f99b8bfa7eeda.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Width":["Laius"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Width":["Laius"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-3c318670b7c75131ab390eb7a2f14543.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"email":["email"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"landing page":["maandumisleht"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"newsletter":["uudiskiri"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."],"Width":["Laius"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"email":["email"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"landing page":["maandumisleht"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"newsletter":["uudiskiri"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."],"Width":["Laius"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-40b409abca8556f628983d076101e590.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"newsletter":["uudiskiri"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Smaily Opt-In Form":["Smaily Liitumisvorm"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"newsletter":["uudiskiri"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Smaily Opt-In Form":["Smaily Liitumisvorm"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-93119d48e6ffd5f6f66d8205f26fae1d.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"No autoresponder":["Automaatvastaja puudub"],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"No autoresponder":["Automaatvastaja puudub"],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-9d57ad9a21f6728aa0c1ce35ebdf20e0.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-bd53a30669e61c7be82f2b960609de09.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/build\/smaily-checkout-optin-block.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/build\/smaily-checkout-optin-block.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-bd72b715e5422068b8955bd68ddf8f50.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"email":["email"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"newsletter":["uudiskiri"],"No autoresponder":["Automaatvastaja puudub"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Smaily Opt-In Form":["Smaily Liitumisvorm"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"email":["email"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"newsletter":["uudiskiri"],"No autoresponder":["Automaatvastaja puudub"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Smaily Opt-In Form":["Smaily Liitumisvorm"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
  • smaily-connect/tags/1.6.0/languages/smaily-connect-et-c78fb3da772cac1b111a09cf4194959e.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"landing page":["maandumisleht"],"newsletter":["uudiskiri"],"Smaily Landing Page":["Smaily Maandumisleht"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"landing page":["maandumisleht"],"newsletter":["uudiskiri"],"Smaily Landing Page":["Smaily Maandumisleht"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."]}}}
  • smaily-connect/tags/1.6.0/public/template/smaily-rss-feed.php

    r3280976 r3420288  
    1212$order_by       = sanitize_text_field( get_query_var( 'order_by' ) );
    1313$rss_order      = sanitize_text_field( get_query_var( 'order' ) );
     14$tax_rate       = sanitize_text_field( get_query_var( 'tax_rate' ) );
     15$tax_rate       = $tax_rate !== '' ? (float) $tax_rate : null;
    1416$currencysymbol = get_woocommerce_currency_symbol();
    1517
    1618// Default to 50 products.
    1719$limit = $limit === 0 ? 50 : $limit;
    18 $items = Rss::list_rss_feed_items( $category, $limit, $order_by, $order );
     20$items = Rss::list_rss_feed_items( $category, $limit, $order_by, $rss_order, $tax_rate );
    1921
    2022header( 'Content-Type: application/xml' );
  • smaily-connect/tags/1.6.0/readme.txt

    r3419958 r3420288  
    66Tested up to: 6.8
    77WC tested up to: 9.6.1
    8 Stable tag: 1.5.1
     8Stable tag: 1.6.0
    99License: GPLv3 or later
    1010
     
    6060
    6161== Changelog ==
     62
     63= 1.6.0 =
     64
     65Added support for adding a tax rate to the RSS-feed product prices. This allows to change the tax rate used in the feed to match the tax rate used in Smaily email templates. This is especially useful for stores that want to target customers in different regions with different tax rates in their email campaigns.
     66
     67Smaily Elementor widget now supports adding custom hidden fields to the subscription form. This allows to set custom fields for subscribers added via the Elementor widget allowing to better segment the subscribers in Smaily.
    6268
    6369= 1.5.1 =
  • smaily-connect/tags/1.6.0/smaily-connect.php

    r3419958 r3420288  
    1212 * Plugin URI:        https://smaily.com/help/user-manual/smaily-connect-for-wordpress/
    1313 * Text Domain:       smaily-connect
    14  * Version:           1.5.1
     14 * Version:           1.6.0
    1515*/
    1616
     
    2323 * Current plugin version.
    2424 */
    25 define( 'SMAILY_CONNECT_PLUGIN_VERSION', '1.5.1' );
     25define( 'SMAILY_CONNECT_PLUGIN_VERSION', '1.6.0' );
    2626
    2727/**
  • smaily-connect/trunk/admin/js/smaily-admin.js

    r3340411 r3420288  
    2626            }
    2727
     28            var tax_rate = $('#smaily-rss-tax-rate').val()
     29            if (tax_rate != '') {
     30                rss_url.searchParams.set('tax_rate', tax_rate);
     31            }
     32
    2833            $('#smaily-rss-feed-url').html(rss_url.href)
    2934        });
  • smaily-connect/trunk/admin/smaily-admin-renderer.class.php

    r3357762 r3420288  
    258258            get_option( Options::RSS_LIMIT_OPTION, null ),
    259259            get_option( Options::RSS_SORT_BY_OPTION, null ),
    260             get_option( Options::RSS_ORDER_BY_OPTION, null )
     260            get_option( Options::RSS_ORDER_BY_OPTION, null ),
     261            get_option( Options::RSS_TAX_RATE, null )
    261262        );
    262263        ?>
     
    337338        $help  = $args['help'] ?? '';
    338339        $class = $args['class'] ?? '';
     340        $step  = $args['step'] ?? '';
    339341        ?>
    340342        <fieldset>
     
    342344                <input
    343345                    type="number"
     346                    step="<?php echo esc_attr( $step ); ?>"
    344347                    id="<?php echo esc_attr( $id ); ?>"
    345348                    class="<?php echo esc_attr( $class ); ?>"
  • smaily-connect/trunk/admin/smaily-admin-settings.class.php

    r3388946 r3420288  
    348348                'sanitize_callback' => 'sanitize_text_field',
    349349                'default'           => Options::RSS_DEFAULT_ORDER_BY,
     350            )
     351        );
     352
     353        $store_default_tax_rate = null;
     354        if ( wc_tax_enabled() ) {
     355            $rates = \WC_Tax::get_base_tax_rates();
     356            foreach ( $rates as $rate ) {
     357                if ( array_key_exists( 'rate', $rate ) ) {
     358                    $store_default_tax_rate = $rate['rate'];
     359                    break;
     360                }
     361            }
     362        }
     363
     364        register_setting(
     365            $option_group,
     366            Options::RSS_TAX_RATE,
     367            array(
     368                'type'              => 'number',
     369                'sanitize_callback' => 'sanitize_text_field',
     370                'default'           => $store_default_tax_rate ?? Options::RSS_DEFAULT_TAX_RATE,
    350371            )
    351372        );
     
    453474
    454475        add_settings_field(
     476            Options::RSS_TAX_RATE,
     477            __( 'Tax Rate (%)', 'smaily-connect' ),
     478            array( $this->renderer, 'render_number_field' ),
     479            $page,
     480            $rss_section,
     481            array(
     482                'option_name' => Options::RSS_TAX_RATE,
     483                'min'         => 0,
     484                'help'        => __( 'Set the item tax rate as a percentage.', 'smaily-connect' ),
     485                'class'       => 'smaily-rss-options',
     486                'id'          => 'smaily-rss-tax-rate',
     487                'step'        => '0.01',
     488            )
     489        );
     490
     491        add_settings_field(
    455492            Options::RSS_URL_OPTION,
    456493            __( 'Product RSS feed', 'smaily-connect' ),
  • smaily-connect/trunk/includes/smaily-options.class.php

    r3388946 r3420288  
    9292
    9393    /**
     94     * Default RSS feed store tax rate.
     95     *
     96     * @var array
     97     */
     98    const RSS_DEFAULT_TAX_RATE = 0;
     99
     100    /**
    94101     * Default RSS feed sort by.
    95102     *
     
    118125    const RSS_SORT_BY_OPTION                    = 'smaily_connect_rss_sort_by';
    119126    const RSS_ORDER_BY_OPTION                   = 'smaily_connect_rss_order_by';
     127    const RSS_TAX_RATE                          = 'smaily_connect_rss_tax_rate';
    120128    const RSS_URL_OPTION                        = 'smaily_connect_rss_url';
    121129    const DATABASE_VERSION_OPTION               = 'smaily_connect_db_version';
     
    143151        self::RSS_ORDER_BY_OPTION,
    144152        self::RSS_URL_OPTION,
     153        self::RSS_TAX_RATE,
    145154        self::DATABASE_VERSION_OPTION,
    146155        self::CONTACT_FORM_7_STATUS_OPTION,
  • smaily-connect/trunk/integrations/elementor/newsletter-widget.class.php

    r3375462 r3420288  
    123123        $settings_for_display = $this->get_settings_for_display();
    124124        $parameters           = array(
    125             'autoresponder_id'  => $settings_for_display['autoresponder_id'] ?? '',
    126             'button_text'       => $settings_for_display['button_text'] ?? '',
    127             'email_label'       => $settings_for_display['email_label'] ?? '',
    128             'email_placeholder' => $settings_for_display['email_placeholder'] ?? '',
    129             'error_message'     => $settings_for_display['error_message'] ?? '',
    130             'language_code'     => Helper::get_current_language_code(),
    131             'failure_url'       => $settings_for_display['failure_url']['url'] ?? Helper::get_current_url(),
    132             'name_label'        => $settings_for_display['name_label'] ?? '',
    133             'name_placeholder'  => $settings_for_display['name_placeholder'] ?? '',
    134             'show_name'         => $settings_for_display['show_name'] === 'yes',
    135             'subdomain'         => $options->get_subdomain(),
    136             'success_message'   => $settings_for_display['success_message'] ?? '',
    137             'success_url'       => $settings_for_display['success_url']['url'] ?? Helper::get_current_url(),
     125            'autoresponder_id'     => $settings_for_display['autoresponder_id'] ?? '',
     126            'button_text'          => $settings_for_display['button_text'] ?? '',
     127            'email_label'          => $settings_for_display['email_label'] ?? '',
     128            'email_placeholder'    => $settings_for_display['email_placeholder'] ?? '',
     129            'error_message'        => $settings_for_display['error_message'] ?? '',
     130            'language_code'        => Helper::get_current_language_code(),
     131            'failure_url'          => $settings_for_display['failure_url']['url'] ?? Helper::get_current_url(),
     132            'name_label'           => $settings_for_display['name_label'] ?? '',
     133            'name_placeholder'     => $settings_for_display['name_placeholder'] ?? '',
     134            'show_name'            => $settings_for_display['show_name'] === 'yes',
     135            'subdomain'            => $options->get_subdomain(),
     136            'success_message'      => $settings_for_display['success_message'] ?? '',
     137            'success_url'          => $settings_for_display['success_url']['url'] ?? Helper::get_current_url(),
     138            'custom_hidden_fields' => $settings_for_display['custom_hidden_fields'] ?? array(),
    138139        );
    139140
     
    193194                    value="<?php echo ! empty( $parameters['success_url'] ) ? esc_url( $parameters['success_url'] ) : esc_url( $current_url ); ?>"
    194195                >
     196                <?php foreach ( $parameters['custom_hidden_fields'] as $custom_hidden_field ) : ?>
     197                    <?php
     198                    $field_name  = isset( $custom_hidden_field['field_name'] ) ? sanitize_text_field( $custom_hidden_field['field_name'] ) : '';
     199                    $field_value = isset( $custom_hidden_field['field_value'] ) ? sanitize_text_field( $custom_hidden_field['field_value'] ) : '';
     200                    ?>
     201                    <?php if ( ! empty( $field_name ) ) : ?>
     202                        <input
     203                            type="hidden"
     204                            name="<?php echo esc_attr( $field_name ); ?>"
     205                            value="<?php echo esc_attr( $field_value ); ?>"
     206                        >
     207                    <?php endif; ?>
     208                <?php endforeach; ?>
    195209                <div class="smaily-connect-elementor-newsletter-form-visible-fields">
    196210                    <div class="smaily-connect-elementor-newsletter-form-input-container">
     
    496510                'default'     => array(
    497511                    'url' => '',
    498 
    499512                ),
    500513                'description' => __( 'Note: URLs are optional. If left empty, the current page URL will be used.', 'smaily-connect' ),
    501514                'options'     => false,
    502515                'placeholder' => __( 'Enter failure URL', 'smaily-connect' ),
     516            )
     517        );
     518
     519        $this->add_control(
     520            'custom_hidden_fields',
     521            array(
     522                'label'         => __( 'Custom Fields', 'smaily-connect' ),
     523                'type'          => Controls_Manager::REPEATER,
     524                'fields'        => array(
     525                    array(
     526                        'name'        => 'field_name',
     527                        'label'       => __( 'Name', 'smaily-connect' ),
     528                        'type'        => Controls_Manager::TEXT,
     529                        'default'     => '',
     530                        'placeholder' => __( 'Enter field name', 'smaily-connect' ),
     531                    ),
     532                    array(
     533                        'name'        => 'field_value',
     534                        'label'       => __( 'Value', 'smaily-connect' ),
     535                        'type'        => Controls_Manager::TEXT,
     536                        'default'     => '',
     537                        'placeholder' => __( 'Enter field value', 'smaily-connect' ),
     538                    ),
     539                ),
     540                'prevent_empty' => false,
     541                'title_field'   => '{{ field_name }}',
     542                'description'   => __( 'Add custom hidden fields to include additional data in the subscription.', 'smaily-connect' ),
    503543            )
    504544        );
  • smaily-connect/trunk/integrations/woocommerce/helper.class.php

    r3385821 r3420288  
    88     *
    99     * @param \WC_Product $product
     10     * @param float|null $tax_rate Tax rate as percentage.
    1011     * @return float
    1112     */
    12     public static function get_current_price_with_tax( $product ) {
     13    public static function get_current_price_with_tax( $product, $tax_rate = null ) {
     14        if ( $tax_rate !== null ) {
     15            $price_excl_tax = wc_get_price_excluding_tax( $product, array( 'price' => $product->get_price() ) );
     16            return self::calculate_price_on_tax_rate( $price_excl_tax, $tax_rate );
     17        }
     18
    1319        $current_price_with_tax = wc_get_price_to_display( $product, array( 'price' => $product->get_price() ) );
    1420
     
    2531     *
    2632     * @param \WC_Product $product
     33     * @param float|null $tax_rate Tax rate as percentage.
    2734     * @return float
    2835     */
    29     public static function get_regular_price_with_tax( $product ) {
     36    public static function get_regular_price_with_tax( $product, $tax_rate = null ) {
     37        if ( $tax_rate !== null ) {
     38            $price_excl_tax = wc_get_price_excluding_tax( $product, array( 'price' => $product->get_regular_price() ) );
     39            return self::calculate_price_on_tax_rate( $price_excl_tax, $tax_rate );
     40        }
     41
    3042        return wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
    3143    }
     
    6274        }
    6375    }
     76
     77    /**
     78     * Calculates the price price based on the given tax rate.
     79     * This is used when the tax rate is provided externally rather than relying on WooCommerce's tax settings.
     80     *
     81     * @param float $base_price
     82     * @param float $tax_rate
     83     * @return float
     84     */
     85    private static function calculate_price_on_tax_rate( $base_price, $tax_rate ) {
     86        $tax_multiplier = 1 + ( $tax_rate / 100 );
     87
     88        return round( $base_price * $tax_multiplier, wc_get_price_decimals() );
     89    }
    6490}
  • smaily-connect/trunk/integrations/woocommerce/rss.class.php

    r3385821 r3420288  
    3232     * @return string
    3333     */
    34     public static function make_rss_feed_url( $rss_category = null, $rss_limit = null, $rss_order_by = null, $rss_order = null ) {
     34    public static function make_rss_feed_url(
     35        $rss_category = null,
     36        $rss_limit = null,
     37        $rss_order_by = null,
     38        $rss_order = null,
     39        $tax_rate = null
     40    ) {
    3541        global $wp_rewrite;
    3642
     
    4955        if ( isset( $rss_order ) && $rss_order_by !== 'none' ) {
    5056            $parameters['order'] = $rss_order;
     57        }
     58        if ( isset( $tax_rate ) ) {
     59            $parameters['tax_rate'] = $tax_rate;
    5160        }
    5261
     
    8392        $vars[] = 'order_by';
    8493        $vars[] = 'order';
     94        $vars[] = 'tax_rate';
    8595        return $vars;
    8696    }
     
    127137     * @param string $order_by
    128138     * @param string $order
     139     * @param float|null $tax_rate
    129140     * @return array{created_at: string, current_price: string, description: string, discount: float, enclosure_url: string, regular_price: string, title: string, url: string}
    130141     */
    131     public static function list_rss_feed_items( $category, $limit, $order_by, $order ) {
     142    public static function list_rss_feed_items( $category, $limit, $order_by, $order, $tax_rate ) {
    132143        $products = Data_Handler::get_products( $category, $limit, $order_by, $order );
    133144        $items    = array();
     
    139150            }
    140151
    141             $current_price = Helper::get_current_price_with_tax( $product );
    142             $regular_price = Helper::get_regular_price_with_tax( $product );
     152            $current_price = Helper::get_current_price_with_tax( $product, $tax_rate );
     153            $regular_price = Helper::get_regular_price_with_tax( $product, $tax_rate );
    143154            $url           = get_permalink( $product->get_id() );
    144155
  • smaily-connect/trunk/languages/smaily-connect-et-152dc44ca25a3f1e171f99b8bfa7eeda.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Width":["Laius"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Width":["Laius"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-3c318670b7c75131ab390eb7a2f14543.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"email":["email"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"landing page":["maandumisleht"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"newsletter":["uudiskiri"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."],"Width":["Laius"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Copy the URL of the landing page you want to display in this block and paste it in the Block settings.":["Kopeerige selle maandumislehe URL, mida soovite selles plokis kuvada, ja kleepige see ploki seadistustesse."],"creating a landing page":["maandumislehe loomine"],"email":["email"],"Enter the URL of the landing page you want to display.":["Sisestage maandumislehe URL mida soovite kuvada."],"Height":["K\u00f5rgus"],"If you need any help setting up the landing page, follow our awesome guide:":["Kui vajate abi maandumislehe loomisel, j\u00e4rgige meie vingeid juhiseid:"],"Invalid Landing Page URL!":["Vigane maandumislehe URL!"],"Invalid landing page URL!":["Vigane maandumislehe URL!"],"landing page":["maandumisleht"],"Landing page URL":["Maandumislehe URL"],"Need a custom thank you page?":["Soovite kujundada t\u00e4nulehte?"],"newsletter":["uudiskiri"],"Please check the entered URL. It is invalid!":["Palun kontrollige sisestatud URL-i. See on vigane!"],"Please configure the plugin first.":["Palun seadistage esmalt pistikmoodul."],"Settings":["Seaded"],"Smaily Connect Landing Page":["Smaily Connect Maandumisleht"],"Smaily Landing Page":["Smaily Maandumisleht"],"URL":["URL"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."],"Width":["Laius"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-40b409abca8556f628983d076101e590.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"newsletter":["uudiskiri"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Smaily Opt-In Form":["Smaily Liitumisvorm"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"newsletter":["uudiskiri"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Smaily Opt-In Form":["Smaily Liitumisvorm"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-93119d48e6ffd5f6f66d8205f26fae1d.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"No autoresponder":["Automaatvastaja puudub"],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/src\/edit.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"No autoresponder":["Automaatvastaja puudub"],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-9d57ad9a21f6728aa0c1ce35ebdf20e0.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-bd53a30669e61c7be82f2b960609de09.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/build\/smaily-checkout-optin-block.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/checkout-optin\/build\/smaily-checkout-optin-block.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Adds a newsletter subscription checkbox to the checkout.":["Lisab uudiskirjaga liitumise m\u00e4rkeruudu kassa lehele."],"checkout":["kassa"],"newsletter":["uudiskiri"],"Smaily Checkout Opt-In":["Smaily Kassalehel Liitumine"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-bd72b715e5422068b8955bd68ddf8f50.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"email":["email"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"newsletter":["uudiskiri"],"No autoresponder":["Automaatvastaja puudub"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Smaily Opt-In Form":["Smaily Liitumisvorm"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/newsletter-signup\/build\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"Add field":["Lisa v\u00e4li"],"Autoresponder":["Automaatvastaja"],"Button border radius":["Nupu piirjoone raadius"],"Custom fields":["Kohandatud v\u00e4ljad"],"Defaults to current page URL.":["Vaikimisi praeguse lehek\u00fclje URL."],"Display name field":["Kuva nime v\u00e4li"],"email":["email"],"Email field label":["E-posti v\u00e4lja silt"],"Error message":["Veateade"],"Failure URL":["T\u00f5rke URL"],"Full width subscribe button":["T\u00e4islaiuses liitumisnupp"],"Go to plugin settings":["Minge pistikprogrammi seadetesse"],"Hidden fields":["Peidetud v\u00e4ljad"],"Name":["Nimi"],"Name field label":["Nimev\u00e4lja silt"],"newsletter":["uudiskiri"],"No autoresponder":["Automaatvastaja puudub"],"Opt-in subscribers directly to Smaily for seamless email marketing.":["Lisa uudiskirjaga liitujad otse Smaily'sse sujuvaks e-posti turunduseks."],"Please connect your Smaily account before adding a form!":["Palun \u00fchendage oma Smaily konto enne vormi lisamist!"],"Plugin setup is not complete!":["Pistikprogrammi seadistamine pole l\u00f5pule viidud!"],"Remove":["Eemalda"],"Smaily Opt-In Form":["Smaily Liitumisvorm"],"Subscribe button label":["Liitumisnupu silt"],"Success message":["\u00d5nnestumise teade"],"Success URL":["\u00d5nnestumise URL"],"Value":["V\u00e4\u00e4rtus"],"Visible fields":["N\u00e4htavad v\u00e4ljad"]}}}
  • smaily-connect/trunk/languages/smaily-connect-et-c78fb3da772cac1b111a09cf4194959e.json

    r3419958 r3420288  
    1 {"translation-revision-date":"2025-12-15 05:33+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"landing page":["maandumisleht"],"newsletter":["uudiskiri"],"Smaily Landing Page":["Smaily Maandumisleht"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."]}}}
     1{"translation-revision-date":"2025-12-15 12:49+0000","generator":"WP-CLI\/2.11.0","source":"blocks\/landingpage\/src\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"et","plural-forms":"nplurals=2; plural=(n != 1);"},"email":["email"],"landing page":["maandumisleht"],"newsletter":["uudiskiri"],"Smaily Landing Page":["Smaily Maandumisleht"],"Use Smaily Landing page for collecting subscribers.":["Kasuta Smaily Maandumislehte uudiskirjaga liitujate kogumiseks."]}}}
  • smaily-connect/trunk/public/template/smaily-rss-feed.php

    r3280976 r3420288  
    1212$order_by       = sanitize_text_field( get_query_var( 'order_by' ) );
    1313$rss_order      = sanitize_text_field( get_query_var( 'order' ) );
     14$tax_rate       = sanitize_text_field( get_query_var( 'tax_rate' ) );
     15$tax_rate       = $tax_rate !== '' ? (float) $tax_rate : null;
    1416$currencysymbol = get_woocommerce_currency_symbol();
    1517
    1618// Default to 50 products.
    1719$limit = $limit === 0 ? 50 : $limit;
    18 $items = Rss::list_rss_feed_items( $category, $limit, $order_by, $order );
     20$items = Rss::list_rss_feed_items( $category, $limit, $order_by, $rss_order, $tax_rate );
    1921
    2022header( 'Content-Type: application/xml' );
  • smaily-connect/trunk/readme.txt

    r3419958 r3420288  
    66Tested up to: 6.8
    77WC tested up to: 9.6.1
    8 Stable tag: 1.5.1
     8Stable tag: 1.6.0
    99License: GPLv3 or later
    1010
     
    6060
    6161== Changelog ==
     62
     63= 1.6.0 =
     64
     65Added support for adding a tax rate to the RSS-feed product prices. This allows to change the tax rate used in the feed to match the tax rate used in Smaily email templates. This is especially useful for stores that want to target customers in different regions with different tax rates in their email campaigns.
     66
     67Smaily Elementor widget now supports adding custom hidden fields to the subscription form. This allows to set custom fields for subscribers added via the Elementor widget allowing to better segment the subscribers in Smaily.
    6268
    6369= 1.5.1 =
  • smaily-connect/trunk/smaily-connect.php

    r3419958 r3420288  
    1212 * Plugin URI:        https://smaily.com/help/user-manual/smaily-connect-for-wordpress/
    1313 * Text Domain:       smaily-connect
    14  * Version:           1.5.1
     14 * Version:           1.6.0
    1515*/
    1616
     
    2323 * Current plugin version.
    2424 */
    25 define( 'SMAILY_CONNECT_PLUGIN_VERSION', '1.5.1' );
     25define( 'SMAILY_CONNECT_PLUGIN_VERSION', '1.6.0' );
    2626
    2727/**
Note: See TracChangeset for help on using the changeset viewer.