Plugin Directory

Changeset 3743350


Ignore:
Timestamp:
10/13/2026 09:11:37 AM (8 days ago)
Author:
uptonica
Message:

Uptonica 1.1.0: any WordPress site, forms become contacts, Uptonica forms in pages

Location:
uptonica-ai-assistant-and-marketing-for-woocommerce
Files:
16 added
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/includes/class-uptonica-admin.php

    r3740886 r3743350  
    3535
    3636        /**
    37          * Under WooCommerce when it is active, at the top level otherwise (so the
    38          * page that says «WooCommerce is required» can still be reached).
     37         * Under WooCommerce on a store, at the top level on any other site.
    3938         */
    4039        public static function menu() {
    41                 if ( class_exists( 'WooCommerce' ) ) {
     40                if ( Uptonica_Settings::has_woocommerce() ) {
    4241                        add_submenu_page( 'woocommerce', 'Uptonica', 'Uptonica', 'manage_woocommerce', self::SLUG, array( __CLASS__, 'render' ) );
    4342
    … …  
    7473                }
    7574
    76                 if ( Uptonica_Settings::is_connected() || ! current_user_can( 'manage_woocommerce' ) || ! class_exists( 'WooCommerce' ) ) {
     75                if ( Uptonica_Settings::is_connected() || ! current_user_can( Uptonica_Settings::capability() ) ) {
    7776                        return;
    7877                }
    … …  
    8281                        esc_html__( 'Uptonica is installed but not connected yet.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ),
    8382                        esc_url( Uptonica_Connection::page_url() ),
    84                         esc_html__( 'Connect your store', 'uptonica-ai-assistant-and-marketing-for-woocommerce' )
    85                 );
    86         }
    87 
    88         /**
    89          * Save the two switches.
     83                        esc_html__( 'Connect your site', 'uptonica-ai-assistant-and-marketing-for-woocommerce' )
     84                );
     85        }
     86
     87        /**
     88         * Save the switches.
    9089         */
    9190        public static function save() {
    92                 if ( ! current_user_can( 'manage_woocommerce' ) ) {
     91                if ( ! current_user_can( Uptonica_Settings::capability() ) ) {
    9392                        wp_die( esc_html__( 'You are not allowed to manage this connection.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), '', array( 'response' => 403 ) );
    9493                }
    … …  
    10099                                'site_tag_on'  => ! empty( $_POST['site_tag_on'] ),
    101100                                'purchases_on' => ! empty( $_POST['purchases_on'] ),
     101                                'forms_on'     => ! empty( $_POST['forms_on'] ),
     102                                'users_on'     => ! empty( $_POST['users_on'] ),
    102103                        )
    103104                );
    … …  
    115116        private static function notice( $code ) {
    116117                $notices = array(
    117                         'connected'       => array( 'success', __( 'Your store is connected to Uptonica.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    118                         'disconnected'    => array( 'success', __( 'Your store is disconnected. Uptonica can no longer read it.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
     118                        'connected'       => array( 'success', __( 'Your site is connected to Uptonica.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
     119                        'disconnected'    => array( 'success', __( 'Your site is disconnected from Uptonica.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    119120                        'saved'           => array( 'success', __( 'Settings saved.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    120121                        'cancelled'       => array( 'warning', __( 'The connection was cancelled. Nothing was changed.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    121122                        'expired'         => array( 'error', __( 'This connection attempt expired or was started from another browser. Click Connect again.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    122                         'exchange_failed' => array( 'error', __( 'WooCommerce approved the connection, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
     123                        'exchange_failed' => array( 'error', __( 'The connection was approved, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    123124                );
    124125
    … …  
    133134                $connected = Uptonica_Settings::is_connected();
    134135                $site_tag  = Uptonica_Settings::site_tag();
     136                $woo       = Uptonica_Settings::has_woocommerce();
    135137                // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- display only.
    136138                $notice = isset( $_GET['uptonica_notice'] ) ? self::notice( sanitize_key( wp_unslash( $_GET['uptonica_notice'] ) ) ) : null;
    … …  
    143145                        <?php endif; ?>
    144146
    145                         <?php if ( ! class_exists( 'WooCommerce' ) ) : ?>
    146                                 <p><?php esc_html_e( 'Uptonica needs WooCommerce. Install and activate WooCommerce, then come back here to connect your store.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
    147                                 <?php return; ?>
    148                         <?php endif; ?>
    149 
    150147                        <?php if ( ! $connected ) : ?>
    151148                                <p style="max-width:42rem">
    152                                         <?php esc_html_e( 'Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     149                                        <?php if ( $woo ) : ?>
     150                                                <?php esc_html_e( 'Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     151                                        <?php else : ?>
     152                                                <?php esc_html_e( 'Connect your site to Uptonica: what people send through your forms becomes contacts in your CRM, and you can add the AI assistant and Uptonica forms and popups to your pages.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     153                                        <?php endif; ?>
    153154                                </p>
    154155                                <p style="max-width:42rem">
    155                                         <?php esc_html_e( 'You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     156                                        <?php if ( $woo ) : ?>
     157                                                <?php esc_html_e( 'You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     158                                        <?php else : ?>
     159                                                <?php esc_html_e( 'You will sign in to Uptonica (or create an account) and choose the workspace. It takes a minute.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     160                                        <?php endif; ?>
    156161                                </p>
    157162                                <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
    … …  
    160165                                        <?php submit_button( __( 'Connect to Uptonica', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), 'primary', 'submit', false ); ?>
    161166                                </form>
    162                                 <?php if ( ! is_ssl() ) : ?>
     167                                <?php if ( $woo && ! is_ssl() ) : ?>
    163168                                        <p class="description"><?php esc_html_e( 'Your site is not served over https. WooCommerce may refuse to approve the connection until it is.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
    164169                                <?php endif; ?>
    … …  
    176181                                                <p class="description">
    177182                                                        <?php
    178                                                         /* translators: %s: date the store was connected. */
     183                                                        /* translators: %s: date the site was connected. */
    179184                                                        printf( esc_html__( 'Connected on %s.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), esc_html( wp_date( get_option( 'date_format' ), (int) $settings['connected_at'] ) ) );
    180185                                                        ?>
    … …  
    194199                                                                <label>
    195200                                                                        <input type="checkbox" name="site_tag_on" value="1" <?php checked( $settings['site_tag_on'] ); ?>>
    196                                                                         <?php esc_html_e( 'Add the Uptonica code to every page of the shop', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     201                                                                        <?php esc_html_e( 'Add the Uptonica code to every page', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
    197202                                                                </label>
    198203                                                                <p class="description">
    … …  
    208213                                        </tr>
    209214                                        <tr>
    210                                                 <th scope="row"><?php esc_html_e( 'Purchases', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
     215                                                <th scope="row"><?php esc_html_e( 'Forms', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
     216                                                <td>
     217                                                        <?php if ( '' === Uptonica_Forms::intake_url() ) : ?>
     218                                                                <p class="description"><?php esc_html_e( 'Disconnect and connect again to send your forms to Uptonica: this connection was made by an earlier version of the plugin.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
     219                                                        <?php else : ?>
     220                                                                <label>
     221                                                                        <input type="checkbox" name="forms_on" value="1" <?php checked( $settings['forms_on'] ); ?>>
     222                                                                        <?php esc_html_e( 'Send what people submit through your forms to Uptonica', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     223                                                                </label>
     224                                                                <p class="description">
     225                                                                        <?php
     226                                                                        $found = Uptonica_Forms::detected();
     227                                                                        if ( $found ) {
     228                                                                                /* translators: %s: names of the form plugins found on the site. */
     229                                                                                printf( esc_html__( 'Found on this site: %s.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), esc_html( implode( ', ', $found ) ) );
     230                                                                        } else {
     231                                                                                esc_html_e( 'Works with Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. None is active on this site yet.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' );
     232                                                                        }
     233                                                                        ?>
     234                                                                        <?php esc_html_e( 'Each submission with an email becomes a contact in your CRM. It reaches Meta as a lead only when the visitor accepted marketing cookies.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     235                                                                        <?php if ( ! empty( $settings['urls']['lead_sources'] ) ) : ?>
     236                                                                                <a href="<?php echo esc_url( $settings['urls']['lead_sources'] ); ?>" target="_blank" rel="noopener"><?php esc_html_e( 'See them in Uptonica', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></a>
     237                                                                        <?php endif; ?>
     238                                                                </p>
     239                                                                <p class="description">
     240                                                                        <?php esc_html_e( 'To show an Uptonica form or popup in a page, add the «Uptonica form» block, or the shortcode [uptonica_form id="…"].', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     241                                                                </p>
     242                                                        <?php endif; ?>
     243                                                </td>
     244                                        </tr>
     245                                        <tr>
     246                                                <th scope="row"><?php esc_html_e( 'Registrations', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
    211247                                                <td>
    212248                                                        <label>
    213                                                                 <input type="checkbox" name="purchases_on" value="1" <?php checked( $settings['purchases_on'] ); ?>>
    214                                                                 <?php esc_html_e( 'Send purchases to Uptonica from the server', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     249                                                                <input type="checkbox" name="users_on" value="1" <?php checked( $settings['users_on'] ); ?> <?php disabled( '' === Uptonica_Forms::intake_url() ); ?>>
     250                                                                <?php esc_html_e( 'Add people who register on this site to your CRM', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
    215251                                                        </label>
    216252                                                        <p class="description">
    217                                                                 <?php esc_html_e( 'A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     253                                                                <?php esc_html_e( 'They become contacts, without marketing consent: a registration is not a request to receive emails.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
    218254                                                        </p>
    219255                                                </td>
    220256                                        </tr>
     257                                        <?php if ( $woo ) : ?>
     258                                                <tr>
     259                                                        <th scope="row"><?php esc_html_e( 'Purchases', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
     260                                                        <td>
     261                                                                <label>
     262                                                                        <input type="checkbox" name="purchases_on" value="1" <?php checked( $settings['purchases_on'] ); ?>>
     263                                                                        <?php esc_html_e( 'Send purchases to Uptonica from the server', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     264                                                                </label>
     265                                                                <p class="description">
     266                                                                        <?php esc_html_e( 'A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     267                                                                </p>
     268                                                        </td>
     269                                                </tr>
     270                                        <?php else : ?>
     271                                                <input type="hidden" name="purchases_on" value="<?php echo $settings['purchases_on'] ? '1' : ''; ?>">
     272                                        <?php endif; ?>
    221273                                </table>
    222274                                <?php submit_button(); ?>
    … …  
    225277                        <hr>
    226278                        <h2><?php esc_html_e( 'Disconnect', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></h2>
    227                         <p style="max-width:42rem"><?php esc_html_e( 'Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
    228                         <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" onsubmit="return window.confirm(this.dataset.confirm);" data-confirm="<?php esc_attr_e( 'Disconnect this store from Uptonica?', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>">
     279                        <p style="max-width:42rem">
     280                                <?php if ( $woo ) : ?>
     281                                        <?php esc_html_e( 'Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages. Forms stop being sent.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     282                                <?php else : ?>
     283                                        <?php esc_html_e( 'Removes the Uptonica code and forms from your pages, and forms stop being sent.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     284                                <?php endif; ?>
     285                        </p>
     286                        <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" onsubmit="return window.confirm(this.dataset.confirm);" data-confirm="<?php esc_attr_e( 'Disconnect this site from Uptonica?', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>">
    229287                                <input type="hidden" name="action" value="uptonica_disconnect">
    230288                                <?php wp_nonce_field( 'uptonica_disconnect' ); ?>
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/includes/class-uptonica-connection.php

    r3740886 r3743350  
    1111 * The connect flow.
    1212 *
    13  * 1. «Connect» sends the merchant to Uptonica with this site's address, the
    14  *    address of this admin page and a one-time state value.
    15  * 2. Uptonica asks which workspace, then runs WooCommerce's own approval
    16  *    screen (`/wc-auth/v1/authorize`), which hands Uptonica an API key.
    17  * 3. The merchant comes back here with a single-use code, which this plugin
    18  *    trades server to server for the workspace name and the public site tag
    19  *    credentials.
     13 * 1. «Connect» sends the site owner to Uptonica with this site's address,
     14 *    the address of this admin page, a one-time state value and whether
     15 *    WooCommerce runs here.
     16 * 2. Uptonica asks which workspace. On a WooCommerce store it then runs
     17 *    WooCommerce's own approval screen (`/wc-auth/v1/authorize`), which
     18 *    hands Uptonica an API key; any other site skips that step.
     19 * 3. The owner comes back here with a single-use code, which this plugin
     20 *    trades server to server for the workspace name, the public site tag
     21 *    credentials and the key of the site's lead source.
    2022 *
    21  * The API key never passes through this plugin: WooCommerce sends it to
    22  * Uptonica directly.
     23 * The WooCommerce API key never passes through this plugin: WooCommerce
     24 * sends it to Uptonica directly.
    2325 */
    2426class Uptonica_Connection {
    … …  
    7981                $url = add_query_arg(
    8082                        array(
    81                                 'site_url'   => rawurlencode( self::site_url() ),
    82                                 'return_url' => rawurlencode( self::page_url() ),
    83                                 'state'      => rawurlencode( $state ),
     83                                'site_url'    => rawurlencode( self::site_url() ),
     84                                'return_url'  => rawurlencode( self::page_url() ),
     85                                'state'       => rawurlencode( $state ),
     86                                'woocommerce' => Uptonica_Settings::has_woocommerce() ? '1' : '0',
    8487                        ),
    8588                        Uptonica_Settings::app_url() . '/wordpress/connect'
    … …  
    99102                }
    100103
    101                 if ( ! current_user_can( 'manage_woocommerce' ) ) {
     104                if ( ! current_user_can( Uptonica_Settings::capability() ) ) {
    102105                        return;
    103106                }
    … …  
    148151                                'site_tag'       => self::clean_site_tag( isset( $body['site_tag'] ) ? $body['site_tag'] : null ),
    149152                                'events_url'     => esc_url_raw( isset( $body['events_url'] ) ? $body['events_url'] : '' ),
     153                                'forms'          => self::clean_forms( isset( $body['forms'] ) ? $body['forms'] : null ),
    150154                        )
    151155                );
    152 
    153                 if ( ! $was_connected ) {
     156                delete_transient( Uptonica_Blocks::LIST_TRANSIENT );
     157
     158                if ( ! $was_connected && Uptonica_Settings::has_woocommerce() ) {
    154159                        Uptonica_Webhooks::schedule();
    155160                }
    … …  
    177182
    178183        /**
     184         * Keep the lead source addresses and key, as strings.
     185         *
     186         * @param mixed $forms Forms block from the exchange.
     187         * @return array{intake_url: string, list_url: string, key: string}|array{}
     188         */
     189        private static function clean_forms( $forms ) {
     190                if ( ! is_array( $forms ) || empty( $forms['intake_url'] ) || empty( $forms['list_url'] ) || empty( $forms['key'] ) ) {
     191                        return array();
     192                }
     193
     194                return array(
     195                        'intake_url' => esc_url_raw( $forms['intake_url'] ),
     196                        'list_url'   => esc_url_raw( $forms['list_url'] ),
     197                        'key'        => sanitize_text_field( $forms['key'] ),
     198                );
     199        }
     200
     201        /**
    179202         * «Disconnect»: revoke what Uptonica was given on this store, then forget
    180203         * the workspace.
    … …  
    187210                self::guard( 'uptonica_disconnect' );
    188211
    189                 self::revoke_api_keys();
    190                 Uptonica_Webhooks::delete_ours();
     212                if ( Uptonica_Settings::has_woocommerce() ) {
     213                        self::revoke_api_keys();
     214                        Uptonica_Webhooks::delete_ours();
     215                }
    191216                Uptonica_Webhooks::unschedule();
     217                Uptonica_Queue::clear( Uptonica_Forms::SEND_HOOK );
     218                delete_transient( Uptonica_Blocks::LIST_TRANSIENT );
    192219                Uptonica_Settings::forget_connection();
    193220
    … …  
    219246         */
    220247        private static function guard( $action ) {
    221                 if ( ! current_user_can( 'manage_woocommerce' ) ) {
     248                if ( ! current_user_can( Uptonica_Settings::capability() ) ) {
    222249                        wp_die( esc_html__( 'You are not allowed to manage this connection.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), '', array( 'response' => 403 ) );
    223250                }
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/includes/class-uptonica-settings.php

    r3740886 r3743350  
    2929                        'site_tag'       => null,
    3030                        'events_url'     => '',
     31                        'forms'          => array(),
    3132                        // Off until the merchant turns it on: the tag puts the assistant
    3233                        // in front of shoppers, which nobody should get by surprise.
    3334                        'site_tag_on'    => false,
    3435                        'purchases_on'   => true,
     36                        // A form submission is a request to be contacted: on.
     37                        'forms_on'       => true,
     38                        // A registration is not: off until the site owner says so.
     39                        'users_on'       => false,
    3540                );
    3641        }
    … …  
    6974
    7075        /**
    71          * Forget the workspace. The two switches keep their position for a later
     76         * Forget the workspace. The switches keep their position for a later
    7277         * reconnect.
    7378         */
    … …  
    8691                        true
    8792                );
     93        }
     94
     95        /**
     96         * Whether WooCommerce runs on this site.
     97         *
     98         * @return bool
     99         */
     100        public static function has_woocommerce() {
     101                return class_exists( 'WooCommerce' );
     102        }
     103
     104        /**
     105         * Who may connect and configure: shop managers on a WooCommerce store,
     106         * administrators elsewhere.
     107         *
     108         * @return string
     109         */
     110        public static function capability() {
     111                return self::has_woocommerce() ? 'manage_woocommerce' : 'manage_options';
    88112        }
    89113
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/languages/uptonica-ai-assistant-and-marketing-for-woocommerce-it_IT.po

    r3740886 r3743350  
    1414"X-Domain: uptonica-ai-assistant-and-marketing-for-woocommerce\n"
    1515
    16 #. Plugin Name of the plugin
    17 #: uptonica.php
    18 msgid "Uptonica – AI assistant and marketing for WooCommerce"
    19 msgstr "Uptonica – Assistente AI e marketing per WooCommerce"
    20 
    2116#. Author URI of the plugin
    2217#: uptonica.php
    … …  
    2419msgstr "https://uptonica.com/"
    2520
    26 #. Description of the plugin
    27 #: uptonica.php
    28 msgid "Connect your WooCommerce store to Uptonica in one click: the AI shopping assistant on your site with a switch, store updates that keep arriving, and purchases sent from your server with the shopper's consent."
    29 msgstr "Collega il tuo negozio WooCommerce a Uptonica con un clic: l'assistente AI sul sito con un interruttore, aggiornamenti del negozio che arrivano sempre e acquisti inviati dal tuo server con il consenso del cliente."
    30 
    3121#. Author of the plugin
    3222#: uptonica.php
    … …  
    3424msgstr "Uptonica"
    3525
    36 #: includes/class-uptonica-admin.php:59
     26#: includes/class-uptonica-admin.php:58
    3727msgid "Settings"
    3828msgstr "Impostazioni"
    3929
    40 #: includes/class-uptonica-admin.php:82
     30#: includes/class-uptonica-admin.php:81
    4131msgid "Uptonica is installed but not connected yet."
    4232msgstr "Uptonica è installato ma non ancora collegato."
    4333
    44 #: includes/class-uptonica-admin.php:84
    45 msgid "Connect your store"
    46 msgstr "Collega il negozio"
    47 
    48 #: includes/class-uptonica-admin.php:93
    49 #: includes/class-uptonica-connection.php:222
     34#: includes/class-uptonica-admin.php:92
     35#: includes/class-uptonica-connection.php:249
    5036msgid "You are not allowed to manage this connection."
    5137msgstr "Non hai i permessi per gestire questo collegamento."
    5238
    53 #: includes/class-uptonica-admin.php:117
    54 msgid "Your store is connected to Uptonica."
    55 msgstr "Il negozio è collegato a Uptonica."
    56 
    57 #: includes/class-uptonica-admin.php:118
    58 msgid "Your store is disconnected. Uptonica can no longer read it."
    59 msgstr "Il negozio è scollegato. Uptonica non può più leggerlo."
    60 
    61 #: includes/class-uptonica-admin.php:119
     39#: includes/class-uptonica-admin.php:120
    6240msgid "Settings saved."
    6341msgstr "Impostazioni salvate."
    6442
    65 #: includes/class-uptonica-admin.php:120
     43#: includes/class-uptonica-admin.php:121
    6644msgid "The connection was cancelled. Nothing was changed."
    6745msgstr "Il collegamento è stato annullato. Non è cambiato nulla."
    6846
    69 #: includes/class-uptonica-admin.php:121
     47#: includes/class-uptonica-admin.php:122
    7048msgid "This connection attempt expired or was started from another browser. Click Connect again."
    7149msgstr "Questo tentativo di collegamento è scaduto o è partito da un altro browser. Clicca di nuovo Collega."
    7250
    73 #: includes/class-uptonica-admin.php:122
    74 msgid "WooCommerce approved the connection, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
    75 msgstr "WooCommerce ha approvato il collegamento, ma questo sito non è riuscito a raggiungere Uptonica per completarlo. Di solito la causa è un firewall o un plugin di sicurezza che blocca le richieste in uscita. Clicca di nuovo Collega."
    76 
    77 #: includes/class-uptonica-admin.php:146
    78 msgid "Uptonica needs WooCommerce. Install and activate WooCommerce, then come back here to connect your store."
    79 msgstr "Uptonica ha bisogno di WooCommerce. Installa e attiva WooCommerce, poi torna qui per collegare il negozio."
    80 
    81 #: includes/class-uptonica-admin.php:152
     51#: includes/class-uptonica-admin.php:150
    8252msgid "Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch."
    8353msgstr "Collega il negozio a Uptonica: catalogo, ordini e clienti restano allineati e puoi aggiungere l'assistente AI al sito con un interruttore."
    8454
    85 #: includes/class-uptonica-admin.php:155
     55#: includes/class-uptonica-admin.php:157
    8656msgid "You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute."
    8757msgstr "Accederai a Uptonica (o creerai un account), sceglierai il workspace e approverai l'accesso in una schermata di WooCommerce. Serve un minuto."
    8858
    89 #: includes/class-uptonica-admin.php:160
     59#: includes/class-uptonica-admin.php:165
    9060msgid "Connect to Uptonica"
    9161msgstr "Collega a Uptonica"
    9262
    93 #: includes/class-uptonica-admin.php:163
     63#: includes/class-uptonica-admin.php:168
    9464msgid "Your site is not served over https. WooCommerce may refuse to approve the connection until it is."
    9565msgstr "Il sito non è servito in https. WooCommerce potrebbe rifiutare il collegamento finché non lo è."
    9666
    97 #: includes/class-uptonica-admin.php:170
     67#: includes/class-uptonica-admin.php:175
    9868msgid "Workspace"
    9969msgstr "Workspace"
    10070
    101 #: includes/class-uptonica-admin.php:174
     71#: includes/class-uptonica-admin.php:179
    10272msgid "Open in Uptonica"
    10373msgstr "Apri in Uptonica"
    10474
    105 #. translators: %s: date the store was connected.
    106 #: includes/class-uptonica-admin.php:179
     75#. translators: %s: date the site was connected.
     76#: includes/class-uptonica-admin.php:184
    10777#, php-format
    10878msgid "Connected on %s."
    10979msgstr "Collegato il %s."
    11080
    111 #: includes/class-uptonica-admin.php:191
     81#: includes/class-uptonica-admin.php:196
    11282msgid "On your site"
    11383msgstr "Sul tuo sito"
    11484
    115 #: includes/class-uptonica-admin.php:196
    116 msgid "Add the Uptonica code to every page of the shop"
    117 msgstr "Aggiungi il codice Uptonica a tutte le pagine del negozio"
    118 
    119 #: includes/class-uptonica-admin.php:199
     85#: includes/class-uptonica-admin.php:204
    12086msgid "It shows the AI assistant and measures visits, following your cookie banner. What it shows is decided in Uptonica."
    12187msgstr "Mostra l'assistente AI e misura le visite, rispettando il banner dei cookie. Cosa mostrare si sceglie in Uptonica."
    12288
    123 #: includes/class-uptonica-admin.php:201
     89#: includes/class-uptonica-admin.php:206
    12490msgid "Choose in Uptonica"
    12591msgstr "Scegli in Uptonica"
    12692
    127 #: includes/class-uptonica-admin.php:205
     93#: includes/class-uptonica-admin.php:210
    12894msgid "This workspace has no assistant set up yet. Set it up in Uptonica, then disconnect and connect again here."
    12995msgstr "Questo workspace non ha ancora un assistente. Configuralo in Uptonica, poi scollega e ricollega qui."
    13096
    131 #: includes/class-uptonica-admin.php:210
     97#: includes/class-uptonica-admin.php:259
    13298msgid "Purchases"
    13399msgstr "Acquisti"
    134100
    135 #: includes/class-uptonica-admin.php:214
     101#: includes/class-uptonica-admin.php:263
    136102msgid "Send purchases to Uptonica from the server"
    137103msgstr "Invia gli acquisti a Uptonica dal server"
    138104
    139 #: includes/class-uptonica-admin.php:217
     105#: includes/class-uptonica-admin.php:266
    140106msgid "A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner."
    141107msgstr "L'acquisto viene contato anche se il cliente non arriva alla pagina di ringraziamento o blocca gli script. Viene inviato solo se il cliente ha accettato la misurazione nel banner dei cookie."
    142108
    143 #: includes/class-uptonica-admin.php:226
    144 #: includes/class-uptonica-admin.php:231
     109#: includes/class-uptonica-admin.php:278 includes/class-uptonica-admin.php:289
    145110msgid "Disconnect"
    146111msgstr "Scollega"
    147112
    148 #: includes/class-uptonica-admin.php:227
    149 msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages."
    150 msgstr "Rimuove da questo negozio la chiave di accesso e gli avvisi di aggiornamento concessi a Uptonica, e toglie il codice Uptonica dalle pagine."
    151 
    152 #: includes/class-uptonica-admin.php:228
    153 msgid "Disconnect this store from Uptonica?"
    154 msgstr "Scollegare questo negozio da Uptonica?"
     113#. Plugin Name of the plugin
     114#: uptonica.php
     115msgid "Uptonica – AI assistant, forms and marketing"
     116msgstr "Uptonica – assistente AI, moduli e marketing"
     117
     118#. Description of the plugin
     119#: uptonica.php
     120msgid "Connect your WordPress site or WooCommerce store to Uptonica: your forms become contacts in your CRM, Uptonica forms and popups go in your pages, the AI assistant goes on your site with a switch, and a store's updates and purchases keep arriving."
     121msgstr "Collega il tuo sito WordPress o il tuo negozio WooCommerce a Uptonica: i tuoi moduli diventano contatti nel CRM, moduli e popup di Uptonica entrano nelle tue pagine, l'assistente AI arriva sul sito con un interruttore, e aggiornamenti e acquisti del negozio continuano ad arrivare."
     122
     123#: includes/class-uptonica-admin.php:83
     124msgid "Connect your site"
     125msgstr "Collega il tuo sito"
     126
     127#: includes/class-uptonica-admin.php:118
     128msgid "Your site is connected to Uptonica."
     129msgstr "Il tuo sito è collegato a Uptonica."
     130
     131#: includes/class-uptonica-admin.php:119
     132msgid "Your site is disconnected from Uptonica."
     133msgstr "Il tuo sito è scollegato da Uptonica."
     134
     135#: includes/class-uptonica-admin.php:123
     136msgid "The connection was approved, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
     137msgstr "Il collegamento è stato approvato, ma questo sito non è riuscito a raggiungere Uptonica per completarlo. Di solito la causa è un firewall o un plugin di sicurezza che blocca le richieste in uscita. Clicca di nuovo su Collega."
     138
     139#: includes/class-uptonica-admin.php:152
     140msgid "Connect your site to Uptonica: what people send through your forms becomes contacts in your CRM, and you can add the AI assistant and Uptonica forms and popups to your pages."
     141msgstr "Collega il tuo sito a Uptonica: quello che le persone inviano dai tuoi moduli diventa un contatto nel CRM, e puoi aggiungere alle tue pagine l'assistente AI e i moduli e i popup di Uptonica."
     142
     143#: includes/class-uptonica-admin.php:159
     144msgid "You will sign in to Uptonica (or create an account) and choose the workspace. It takes a minute."
     145msgstr "Accederai a Uptonica (o creerai un account) e sceglierai il workspace. Ci vuole un minuto."
     146
     147#: includes/class-uptonica-admin.php:201
     148msgid "Add the Uptonica code to every page"
     149msgstr "Aggiungi il codice Uptonica a tutte le pagine"
     150
     151#: includes/class-uptonica-admin.php:215
     152msgid "Forms"
     153msgstr "Moduli"
     154
     155#: includes/class-uptonica-admin.php:218
     156msgid "Disconnect and connect again to send your forms to Uptonica: this connection was made by an earlier version of the plugin."
     157msgstr "Scollega e ricollega il sito per inviare i tuoi moduli a Uptonica: questo collegamento è stato fatto con una versione precedente del plugin."
     158
     159#: includes/class-uptonica-admin.php:222
     160msgid "Send what people submit through your forms to Uptonica"
     161msgstr "Invia a Uptonica quello che le persone inviano dai tuoi moduli"
     162
     163#. translators: %s: names of the form plugins found on the site.
     164#: includes/class-uptonica-admin.php:229
     165#, php-format
     166msgid "Found on this site: %s."
     167msgstr "Trovati su questo sito: %s."
     168
     169#: includes/class-uptonica-admin.php:231
     170msgid "Works with Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. None is active on this site yet."
     171msgstr "Funziona con Contact Form 7, WPForms, Gravity Forms, Fluent Forms e i moduli di Elementor Pro. Nessuno è ancora attivo su questo sito."
     172
     173#: includes/class-uptonica-admin.php:234
     174msgid "Each submission with an email becomes a contact in your CRM. It reaches Meta as a lead only when the visitor accepted marketing cookies."
     175msgstr "Ogni invio con un'email diventa un contatto nel CRM. Arriva a Meta come lead solo se il visitatore ha accettato i cookie di marketing."
     176
     177#: includes/class-uptonica-admin.php:236
     178msgid "See them in Uptonica"
     179msgstr "Vedili in Uptonica"
     180
     181#: includes/class-uptonica-admin.php:240
     182msgid "To show an Uptonica form or popup in a page, add the «Uptonica form» block, or the shortcode [uptonica_form id=\"…\"]."
     183msgstr "Per mostrare un modulo o un popup di Uptonica in una pagina, aggiungi il blocco «Modulo Uptonica» oppure lo shortcode [uptonica_form id=\"…\"]."
     184
     185#: includes/class-uptonica-admin.php:246
     186msgid "Registrations"
     187msgstr "Registrazioni"
     188
     189#: includes/class-uptonica-admin.php:250
     190msgid "Add people who register on this site to your CRM"
     191msgstr "Aggiungi al CRM chi si registra su questo sito"
     192
     193#: includes/class-uptonica-admin.php:253
     194msgid "They become contacts, without marketing consent: a registration is not a request to receive emails."
     195msgstr "Diventano contatti, senza consenso al marketing: una registrazione non è una richiesta di ricevere email."
     196
     197#: includes/class-uptonica-admin.php:281
     198msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages. Forms stop being sent."
     199msgstr "Rimuove la chiave di accesso e gli avvisi di aggiornamento concessi a Uptonica su questo negozio, e il codice Uptonica dalle tue pagine. I moduli smettono di essere inviati."
     200
     201#: includes/class-uptonica-admin.php:283
     202msgid "Removes the Uptonica code and forms from your pages, and forms stop being sent."
     203msgstr "Rimuove il codice e i moduli di Uptonica dalle tue pagine, e i moduli smettono di essere inviati."
     204
     205#: includes/class-uptonica-admin.php:286
     206msgid "Disconnect this site from Uptonica?"
     207msgstr "Scollegare questo sito da Uptonica?"
     208
     209#: assets/form-block.js:13 assets/form-block.js:51 assets/form-block.js:68
     210msgid "Uptonica form"
     211msgstr "Modulo Uptonica"
     212
     213#: assets/form-block.js:14
     214msgid "A form or popup made in Uptonica."
     215msgstr "Un modulo o un popup creato in Uptonica."
     216
     217#: assets/form-block.js:39
     218msgid "Connect this site to Uptonica first, from the Uptonica page in the admin menu."
     219msgstr "Prima collega questo sito a Uptonica, dalla pagina Uptonica nel menu di amministrazione."
     220
     221#: assets/form-block.js:42
     222msgid "Choose a form"
     223msgstr "Scegli un modulo"
     224
     225#: assets/form-block.js:44
     226msgid "popup"
     227msgstr "popup"
     228
     229#: assets/form-block.js:61
     230msgid "This workspace has no forms yet."
     231msgstr "Questo workspace non ha ancora moduli."
     232
     233#: assets/form-block.js:65
     234msgid "Create or edit forms in Uptonica"
     235msgstr "Crea o modifica i moduli in Uptonica"
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/languages/uptonica-ai-assistant-and-marketing-for-woocommerce.pot

    r3740886 r3743350  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Uptonica – AI assistant and marketing for WooCommerce 1.0.0\n"
     5"Project-Id-Version: Uptonica – AI assistant, forms and marketing 1.1.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/uptonica-ai-assistant-and-marketing-for-woocommerce\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-10-12T08:16:31+00:00\n"
     12"POT-Creation-Date: 2026-10-13T07:41:03+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    1717#. Plugin Name of the plugin
    1818#: uptonica.php
    19 msgid "Uptonica – AI assistant and marketing for WooCommerce"
     19msgid "Uptonica – AI assistant, forms and marketing"
    2020msgstr ""
    2121
    2222#. Description of the plugin
    2323#: uptonica.php
    24 msgid "Connect your WooCommerce store to Uptonica in one click: the AI shopping assistant on your site with a switch, store updates that keep arriving, and purchases sent from your server with the shopper's consent."
     24msgid "Connect your WordPress site or WooCommerce store to Uptonica: your forms become contacts in your CRM, Uptonica forms and popups go in your pages, the AI assistant goes on your site with a switch, and a store's updates and purchases keep arriving."
    2525msgstr ""
    2626
    … …  
    3535msgstr ""
    3636
    37 #: includes/class-uptonica-admin.php:59
     37#: includes/class-uptonica-admin.php:58
    3838msgid "Settings"
    3939msgstr ""
    4040
    41 #: includes/class-uptonica-admin.php:82
     41#: includes/class-uptonica-admin.php:81
    4242msgid "Uptonica is installed but not connected yet."
    4343msgstr ""
    4444
    45 #: includes/class-uptonica-admin.php:84
    46 msgid "Connect your store"
    47 msgstr ""
    48 
    49 #: includes/class-uptonica-admin.php:93
    50 #: includes/class-uptonica-connection.php:222
     45#: includes/class-uptonica-admin.php:83
     46msgid "Connect your site"
     47msgstr ""
     48
     49#: includes/class-uptonica-admin.php:92
     50#: includes/class-uptonica-connection.php:249
    5151msgid "You are not allowed to manage this connection."
    5252msgstr ""
    5353
    54 #: includes/class-uptonica-admin.php:117
    55 msgid "Your store is connected to Uptonica."
    56 msgstr ""
    57 
    5854#: includes/class-uptonica-admin.php:118
    59 msgid "Your store is disconnected. Uptonica can no longer read it."
     55msgid "Your site is connected to Uptonica."
    6056msgstr ""
    6157
    6258#: includes/class-uptonica-admin.php:119
     59msgid "Your site is disconnected from Uptonica."
     60msgstr ""
     61
     62#: includes/class-uptonica-admin.php:120
    6363msgid "Settings saved."
    6464msgstr ""
    6565
    66 #: includes/class-uptonica-admin.php:120
     66#: includes/class-uptonica-admin.php:121
    6767msgid "The connection was cancelled. Nothing was changed."
    6868msgstr ""
    6969
    70 #: includes/class-uptonica-admin.php:121
     70#: includes/class-uptonica-admin.php:122
    7171msgid "This connection attempt expired or was started from another browser. Click Connect again."
    7272msgstr ""
    7373
    74 #: includes/class-uptonica-admin.php:122
    75 msgid "WooCommerce approved the connection, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
    76 msgstr ""
    77 
    78 #: includes/class-uptonica-admin.php:146
    79 msgid "Uptonica needs WooCommerce. Install and activate WooCommerce, then come back here to connect your store."
     74#: includes/class-uptonica-admin.php:123
     75msgid "The connection was approved, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
     76msgstr ""
     77
     78#: includes/class-uptonica-admin.php:150
     79msgid "Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch."
    8080msgstr ""
    8181
    8282#: includes/class-uptonica-admin.php:152
    83 msgid "Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch."
    84 msgstr ""
    85 
    86 #: includes/class-uptonica-admin.php:155
     83msgid "Connect your site to Uptonica: what people send through your forms becomes contacts in your CRM, and you can add the AI assistant and Uptonica forms and popups to your pages."
     84msgstr ""
     85
     86#: includes/class-uptonica-admin.php:157
    8787msgid "You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute."
    8888msgstr ""
    8989
    90 #: includes/class-uptonica-admin.php:160
     90#: includes/class-uptonica-admin.php:159
     91msgid "You will sign in to Uptonica (or create an account) and choose the workspace. It takes a minute."
     92msgstr ""
     93
     94#: includes/class-uptonica-admin.php:165
    9195msgid "Connect to Uptonica"
    9296msgstr ""
    9397
    94 #: includes/class-uptonica-admin.php:163
     98#: includes/class-uptonica-admin.php:168
    9599msgid "Your site is not served over https. WooCommerce may refuse to approve the connection until it is."
    96100msgstr ""
    97101
    98 #: includes/class-uptonica-admin.php:170
     102#: includes/class-uptonica-admin.php:175
    99103msgid "Workspace"
    100104msgstr ""
    101105
    102 #: includes/class-uptonica-admin.php:174
     106#: includes/class-uptonica-admin.php:179
    103107msgid "Open in Uptonica"
    104108msgstr ""
    105109
    106 #. translators: %s: date the store was connected.
    107 #: includes/class-uptonica-admin.php:179
     110#. translators: %s: date the site was connected.
     111#: includes/class-uptonica-admin.php:184
    108112#, php-format
    109113msgid "Connected on %s."
    110114msgstr ""
    111115
    112 #: includes/class-uptonica-admin.php:191
     116#: includes/class-uptonica-admin.php:196
    113117msgid "On your site"
    114118msgstr ""
    115119
    116 #: includes/class-uptonica-admin.php:196
    117 msgid "Add the Uptonica code to every page of the shop"
    118 msgstr ""
    119 
    120 #: includes/class-uptonica-admin.php:199
     120#: includes/class-uptonica-admin.php:201
     121msgid "Add the Uptonica code to every page"
     122msgstr ""
     123
     124#: includes/class-uptonica-admin.php:204
    121125msgid "It shows the AI assistant and measures visits, following your cookie banner. What it shows is decided in Uptonica."
    122126msgstr ""
    123127
    124 #: includes/class-uptonica-admin.php:201
     128#: includes/class-uptonica-admin.php:206
    125129msgid "Choose in Uptonica"
    126130msgstr ""
    127131
    128 #: includes/class-uptonica-admin.php:205
     132#: includes/class-uptonica-admin.php:210
    129133msgid "This workspace has no assistant set up yet. Set it up in Uptonica, then disconnect and connect again here."
    130134msgstr ""
    131135
    132 #: includes/class-uptonica-admin.php:210
     136#: includes/class-uptonica-admin.php:215
     137msgid "Forms"
     138msgstr ""
     139
     140#: includes/class-uptonica-admin.php:218
     141msgid "Disconnect and connect again to send your forms to Uptonica: this connection was made by an earlier version of the plugin."
     142msgstr ""
     143
     144#: includes/class-uptonica-admin.php:222
     145msgid "Send what people submit through your forms to Uptonica"
     146msgstr ""
     147
     148#. translators: %s: names of the form plugins found on the site.
     149#: includes/class-uptonica-admin.php:229
     150#, php-format
     151msgid "Found on this site: %s."
     152msgstr ""
     153
     154#: includes/class-uptonica-admin.php:231
     155msgid "Works with Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. None is active on this site yet."
     156msgstr ""
     157
     158#: includes/class-uptonica-admin.php:234
     159msgid "Each submission with an email becomes a contact in your CRM. It reaches Meta as a lead only when the visitor accepted marketing cookies."
     160msgstr ""
     161
     162#: includes/class-uptonica-admin.php:236
     163msgid "See them in Uptonica"
     164msgstr ""
     165
     166#: includes/class-uptonica-admin.php:240
     167msgid "To show an Uptonica form or popup in a page, add the «Uptonica form» block, or the shortcode [uptonica_form id=\"…\"]."
     168msgstr ""
     169
     170#: includes/class-uptonica-admin.php:246
     171msgid "Registrations"
     172msgstr ""
     173
     174#: includes/class-uptonica-admin.php:250
     175msgid "Add people who register on this site to your CRM"
     176msgstr ""
     177
     178#: includes/class-uptonica-admin.php:253
     179msgid "They become contacts, without marketing consent: a registration is not a request to receive emails."
     180msgstr ""
     181
     182#: includes/class-uptonica-admin.php:259
    133183msgid "Purchases"
    134184msgstr ""
    135185
    136 #: includes/class-uptonica-admin.php:214
     186#: includes/class-uptonica-admin.php:263
    137187msgid "Send purchases to Uptonica from the server"
    138188msgstr ""
    139189
    140 #: includes/class-uptonica-admin.php:217
     190#: includes/class-uptonica-admin.php:266
    141191msgid "A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner."
    142192msgstr ""
    143193
    144 #: includes/class-uptonica-admin.php:226
    145 #: includes/class-uptonica-admin.php:231
     194#: includes/class-uptonica-admin.php:278
     195#: includes/class-uptonica-admin.php:289
    146196msgid "Disconnect"
    147197msgstr ""
    148198
    149 #: includes/class-uptonica-admin.php:227
    150 msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages."
    151 msgstr ""
    152 
    153 #: includes/class-uptonica-admin.php:228
    154 msgid "Disconnect this store from Uptonica?"
    155 msgstr ""
     199#: includes/class-uptonica-admin.php:281
     200msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages. Forms stop being sent."
     201msgstr ""
     202
     203#: includes/class-uptonica-admin.php:283
     204msgid "Removes the Uptonica code and forms from your pages, and forms stop being sent."
     205msgstr ""
     206
     207#: includes/class-uptonica-admin.php:286
     208msgid "Disconnect this site from Uptonica?"
     209msgstr ""
     210
     211#: assets/form-block.js:13
     212#: assets/form-block.js:51
     213#: assets/form-block.js:68
     214msgid "Uptonica form"
     215msgstr ""
     216
     217#: assets/form-block.js:14
     218msgid "A form or popup made in Uptonica."
     219msgstr ""
     220
     221#: assets/form-block.js:39
     222msgid "Connect this site to Uptonica first, from the Uptonica page in the admin menu."
     223msgstr ""
     224
     225#: assets/form-block.js:42
     226msgid "Choose a form"
     227msgstr ""
     228
     229#: assets/form-block.js:44
     230msgid "popup"
     231msgstr ""
     232
     233#: assets/form-block.js:61
     234msgid "This workspace has no forms yet."
     235msgstr ""
     236
     237#: assets/form-block.js:65
     238msgid "Create or edit forms in Uptonica"
     239msgstr ""
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/readme.txt

    r3740994 r3743350  
    1 === Uptonica – AI assistant and marketing for WooCommerce ===
     1=== Uptonica – AI assistant, forms and marketing ===
    22Contributors: uptonica
    3 Tags: woocommerce, ai assistant, chatbot, email marketing, analytics
     3Tags: crm, forms, ai assistant, woocommerce, lead generation
    44Requires at least: 6.3
    55Tested up to: 7.1
    66Requires PHP: 7.4
    7 Stable tag: 1.0.1
     7Stable tag: 1.1.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Connect your WooCommerce store to Uptonica in one click: an AI shopping assistant on your site, marketing automations and reliable sales data.
     11Connect your WordPress site or WooCommerce store to Uptonica: your forms become CRM contacts, Uptonica forms and popups in your pages, an AI assistant.
    1212
    1313== Description ==
    1414
    15 [Uptonica](https://uptonica.com/) is an AI platform for online stores: an AI shopping assistant that answers your customers from your real catalog, email and WhatsApp automations, product content and advertising reports.
     15[Uptonica](https://uptonica.com/) is an AI marketing platform: a CRM with email and WhatsApp automations, forms and popups, an AI assistant that answers your visitors, and, for online stores, product content and advertising reports.
    1616
    17 This plugin connects your WooCommerce store to your Uptonica workspace without copying API keys by hand.
     17This plugin connects your site to your Uptonica workspace without copying keys or code by hand. It works on any WordPress site; on a WooCommerce store it also connects the store.
    1818
    19 = What the plugin does =
     19= On every site =
    2020
    21 * **One-click connection.** Click «Connect to Uptonica», choose your workspace, approve access on the standard WooCommerce screen. Your catalog, orders and customers stay in sync.
    22 * **The assistant with a switch.** Add the Uptonica code to every page of the shop without editing your theme or Tag Manager. What it shows (the assistant, visit measurement) is chosen in Uptonica.
    23 * **Store updates that keep arriving.** WooCommerce switches a webhook off after a few failed deliveries and drops the failed ones. For Uptonica's webhooks, the plugin sends failed deliveries again later and switches them back on, so your store never silently stops updating.
     21* **One-click connection.** Click «Connect to Uptonica» and choose your workspace.
     22* **Your forms become contacts.** What people send through Contact Form 7, WPForms, Gravity Forms, Fluent Forms or Elementor Pro forms also reaches your Uptonica CRM: each submission with an email becomes a contact, shows in «Lead sources» and can start your automations. Your forms keep working as before.
     23* **Uptonica forms and popups in your pages.** Add the «Uptonica form» block, or the `[uptonica_form id="…"]` shortcode, to show a form or popup made in Uptonica.
     24* **Leads counted from the server.** A form submission reaches Meta as a lead, from your server, only when the visitor accepted marketing cookies, so a blocked browser script does not lose it.
     25* **Registrations as contacts.** Optionally, people who register on your site join your CRM (without marketing consent).
     26* **The assistant with a switch.** Add the Uptonica code to every page without editing your theme or Tag Manager. What it shows (the assistant, visit measurement) is chosen in Uptonica.
     27
     28= On a WooCommerce store, also =
     29
     30* **Store connection.** Approve access on the standard WooCommerce screen: your catalog, orders and customers stay in sync.
     31* **Store updates that keep arriving.** WooCommerce switches a webhook off after a few failed deliveries and drops the failed ones. For Uptonica's webhooks, the plugin sends failed deliveries again later and switches them back on.
    2432* **Purchases from the server.** A purchase is counted even when the shopper pays on an external page and never returns to the thank-you page, or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner.
    2533
    2634= Requirements =
    2735
    28 * WooCommerce 8.0 or later.
    2936* An Uptonica account. You can create one during the connection.
    30 * A site served over https (WooCommerce's approval screen requires it).
     37* For the store features: WooCommerce 8.0 or later and a site served over https (WooCommerce's approval screen requires it).
    3138
    3239== External services ==
    … …  
    3441This plugin connects to Uptonica (https://uptonica.com/), a service run by the plugin's author. Without it the plugin does nothing.
    3542
    36 * **When you click «Connect to Uptonica»**, your browser is sent to app.uptonica.com with your site address and the address of the plugin page. After you approve on the WooCommerce screen, WooCommerce sends Uptonica a REST API key for your store, and the plugin calls `https://app.uptonica.com/api/wordpress/v1/exchange` once, from your server, to learn which workspace it joined.
    37 * **When «Add the Uptonica code to every page» is on**, every page of the shop loads `https://app.uptonica.com/widget/uptonica.js`. It shows the AI assistant and, following your cookie banner, measures visits. Visitors' browsers then talk to app.uptonica.com.
    38 * **When «Send purchases from the server» is on**, each paid order whose shopper accepted measurement is sent from your server to `https://app.uptonica.com/api/events`: order number, total, currency, products, the shopper's email (used to match the purchase to an existing contact and not stored on the event), IP address and browser user agent, and the analytics cookies already on the shopper's device (`_uton_aid`, `_ga`, `_fbp`, `_fbc`).
     43* **When you click «Connect to Uptonica»**, your browser is sent to app.uptonica.com with your site address, the address of the plugin page and whether WooCommerce is active. On a store, after you approve on the WooCommerce screen, WooCommerce sends Uptonica a REST API key for your store. Then the plugin calls `https://app.uptonica.com/api/wordpress/v1/exchange` once, from your server, to learn which workspace it joined and receive the key of your site's lead source.
     44* **When «Send what people submit through your forms» is on**, each submission with an email is sent from your server to your lead source at `https://app.uptonica.com/api/crm/forms/intake/…`: the fields the person filled in, the form's name, their IP address and browser user agent, the Uptonica visitor id (`_uton_aid`) when they accepted measurement, and the Meta click id from `_fbc` when they accepted marketing.
     45* **When «Add people who register on this site» is on**, each new account's email and name are sent the same way.
     46* **In the block editor**, the «Uptonica form» block reads the list of your workspace's forms from `https://app.uptonica.com/api/wordpress/v1/forms`. A page with the block or shortcode loads the form from `https://app.uptonica.com/f/…`, and the visitor's browser then talks to app.uptonica.com.
     47* **When «Add the Uptonica code to every page» is on**, every page loads `https://app.uptonica.com/widget/uptonica.js`. It shows the AI assistant and, following your cookie banner, measures visits.
     48* **When «Send purchases from the server» is on** (stores only), each paid order whose shopper accepted measurement is sent from your server to `https://app.uptonica.com/api/events`: order number, total, currency, products, the shopper's email (used to match the purchase to an existing contact and not stored on the event), IP address and browser user agent, and the analytics cookies already on the shopper's device (`_uton_aid`, `_ga`, `_fbp`, `_fbc`).
    3949* **Store updates** are sent by WooCommerce's own webhooks, which Uptonica registers on your store during the connection.
    4050
    … …  
    4353== Installation ==
    4454
    45 1. Install and activate WooCommerce.
    46 2. Install and activate this plugin.
    47 3. Go to WooCommerce → Uptonica and click «Connect to Uptonica».
     551. Install and activate this plugin.
     562. Open the Uptonica page (in the admin menu, or under WooCommerce on a store) and click «Connect to Uptonica».
    4857
    4958== Frequently Asked Questions ==
    5059
     60= Do I need WooCommerce? =
     61
     62No. Without WooCommerce you get the forms, the registrations, the Uptonica code and the block. WooCommerce adds the store connection, its updates and purchases.
     63
    5164= Does the plugin store my API keys? =
    5265
    53 No. WooCommerce creates the key on its approval screen and sends it to Uptonica directly. The plugin only stores the workspace name and the public code of your Uptonica site tag.
     66No WooCommerce key: WooCommerce creates it on its approval screen and sends it to Uptonica directly. The plugin stores the workspace name, the public code of your Uptonica site tag and the key of your site's lead source, which it never prints in a page.
     67
     68= Which form plugins are supported? =
     69
     70Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. A submission without an email address is not sent.
    5471
    5572= How do I disconnect? =
    5673
    57 WooCommerce → Uptonica → Disconnect. It deletes the API key and the webhooks Uptonica was given on your store and removes the Uptonica code from your pages.
     74Uptonica → Disconnect. On a store it also deletes the API key and the webhooks Uptonica was given. Your pages lose the Uptonica code and forms, and submissions stop being sent.
    5875
    59 = Which cookie banners are supported for purchases sent from the server? =
     76= Which cookie banners are supported? =
    6077
    61 Any banner that implements the WP Consent API, plus Complianz, CookieYes, Cookiebot, OneTrust and iubenda. With any other banner, a purchase is sent only if the Uptonica code had already been allowed to measure that visitor.
     78Any banner that implements the WP Consent API, plus Complianz, CookieYes, Cookiebot, OneTrust and iubenda. With any other banner, a purchase is sent only if the Uptonica code had already been allowed to measure that visitor, and a form submission still becomes a contact but never reaches Meta.
    6279
    6380== Changelog ==
     81
     82= 1.1.0 =
     83* Works on any WordPress site, with or without WooCommerce.
     84* Submissions from Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro become contacts in Uptonica, and leads for Meta with the visitor's consent.
     85* «Uptonica form» block and `[uptonica_form]` shortcode for Uptonica forms and popups.
     86* Optional: people who register on the site become contacts.
    6487
    6588= 1.0.1 =
  • uptonica-ai-assistant-and-marketing-for-woocommerce/tags/1.1.0/uptonica.php

    r3740994 r3743350  
    11<?php
    22/**
    3  * Plugin Name:       Uptonica – AI assistant and marketing for WooCommerce
    4  * Description:       Connect your WooCommerce store to Uptonica in one click: the AI shopping assistant on your site with a switch, store updates that keep arriving, and purchases sent from your server with the shopper's consent.
    5  * Version:           1.0.1
     3 * Plugin Name:       Uptonica – AI assistant, forms and marketing
     4 * Description:       Connect your WordPress site or WooCommerce store to Uptonica: your forms become contacts in your CRM, Uptonica forms and popups go in your pages, the AI assistant goes on your site with a switch, and a store's updates and purchases keep arriving.
     5 * Version:           1.1.0
    66 * Requires at least: 6.3
    77 * Requires PHP:      7.4
    8  * Requires Plugins:  woocommerce
    98 * Author:            Uptonica
    109 * Author URI:        https://uptonica.com/
    … …  
    2120defined( 'ABSPATH' ) || exit;
    2221
    23 define( 'UPTONICA_VERSION', '1.0.1' );
     22define( 'UPTONICA_VERSION', '1.1.0' );
    2423define( 'UPTONICA_FILE', __FILE__ );
    2524define( 'UPTONICA_DIR', plugin_dir_path( __FILE__ ) );
    … …  
    3736require_once UPTONICA_DIR . 'includes/class-uptonica-consent.php';
    3837require_once UPTONICA_DIR . 'includes/class-uptonica-purchase-events.php';
     38require_once UPTONICA_DIR . 'includes/class-uptonica-queue.php';
     39require_once UPTONICA_DIR . 'includes/class-uptonica-forms.php';
     40require_once UPTONICA_DIR . 'includes/class-uptonica-users.php';
     41require_once UPTONICA_DIR . 'includes/class-uptonica-blocks.php';
    3942
    4043// HPOS and the block checkout: everything here reads orders through the
    … …  
    5962                Uptonica_Admin::init();
    6063                Uptonica_Connection::init();
     64                Uptonica_Site_Tag::init();
     65                Uptonica_Forms::init();
     66                Uptonica_Users::init();
     67                Uptonica_Blocks::init();
    6168
    62                 if ( ! class_exists( 'WooCommerce' ) ) {
     69                // What only a store has: its webhooks to keep alive and its purchases.
     70                if ( ! Uptonica_Settings::has_woocommerce() ) {
    6371                        return;
    6472                }
    6573
    66                 Uptonica_Site_Tag::init();
    6774                Uptonica_Webhooks::init();
    6875                Uptonica_Purchase_Events::init();
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/includes/class-uptonica-admin.php

    r3740886 r3743350  
    3535
    3636        /**
    37          * Under WooCommerce when it is active, at the top level otherwise (so the
    38          * page that says «WooCommerce is required» can still be reached).
     37         * Under WooCommerce on a store, at the top level on any other site.
    3938         */
    4039        public static function menu() {
    41                 if ( class_exists( 'WooCommerce' ) ) {
     40                if ( Uptonica_Settings::has_woocommerce() ) {
    4241                        add_submenu_page( 'woocommerce', 'Uptonica', 'Uptonica', 'manage_woocommerce', self::SLUG, array( __CLASS__, 'render' ) );
    4342
    … …  
    7473                }
    7574
    76                 if ( Uptonica_Settings::is_connected() || ! current_user_can( 'manage_woocommerce' ) || ! class_exists( 'WooCommerce' ) ) {
     75                if ( Uptonica_Settings::is_connected() || ! current_user_can( Uptonica_Settings::capability() ) ) {
    7776                        return;
    7877                }
    … …  
    8281                        esc_html__( 'Uptonica is installed but not connected yet.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ),
    8382                        esc_url( Uptonica_Connection::page_url() ),
    84                         esc_html__( 'Connect your store', 'uptonica-ai-assistant-and-marketing-for-woocommerce' )
    85                 );
    86         }
    87 
    88         /**
    89          * Save the two switches.
     83                        esc_html__( 'Connect your site', 'uptonica-ai-assistant-and-marketing-for-woocommerce' )
     84                );
     85        }
     86
     87        /**
     88         * Save the switches.
    9089         */
    9190        public static function save() {
    92                 if ( ! current_user_can( 'manage_woocommerce' ) ) {
     91                if ( ! current_user_can( Uptonica_Settings::capability() ) ) {
    9392                        wp_die( esc_html__( 'You are not allowed to manage this connection.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), '', array( 'response' => 403 ) );
    9493                }
    … …  
    10099                                'site_tag_on'  => ! empty( $_POST['site_tag_on'] ),
    101100                                'purchases_on' => ! empty( $_POST['purchases_on'] ),
     101                                'forms_on'     => ! empty( $_POST['forms_on'] ),
     102                                'users_on'     => ! empty( $_POST['users_on'] ),
    102103                        )
    103104                );
    … …  
    115116        private static function notice( $code ) {
    116117                $notices = array(
    117                         'connected'       => array( 'success', __( 'Your store is connected to Uptonica.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    118                         'disconnected'    => array( 'success', __( 'Your store is disconnected. Uptonica can no longer read it.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
     118                        'connected'       => array( 'success', __( 'Your site is connected to Uptonica.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
     119                        'disconnected'    => array( 'success', __( 'Your site is disconnected from Uptonica.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    119120                        'saved'           => array( 'success', __( 'Settings saved.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    120121                        'cancelled'       => array( 'warning', __( 'The connection was cancelled. Nothing was changed.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    121122                        'expired'         => array( 'error', __( 'This connection attempt expired or was started from another browser. Click Connect again.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    122                         'exchange_failed' => array( 'error', __( 'WooCommerce approved the connection, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
     123                        'exchange_failed' => array( 'error', __( 'The connection was approved, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ) ),
    123124                );
    124125
    … …  
    133134                $connected = Uptonica_Settings::is_connected();
    134135                $site_tag  = Uptonica_Settings::site_tag();
     136                $woo       = Uptonica_Settings::has_woocommerce();
    135137                // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- display only.
    136138                $notice = isset( $_GET['uptonica_notice'] ) ? self::notice( sanitize_key( wp_unslash( $_GET['uptonica_notice'] ) ) ) : null;
    … …  
    143145                        <?php endif; ?>
    144146
    145                         <?php if ( ! class_exists( 'WooCommerce' ) ) : ?>
    146                                 <p><?php esc_html_e( 'Uptonica needs WooCommerce. Install and activate WooCommerce, then come back here to connect your store.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
    147                                 <?php return; ?>
    148                         <?php endif; ?>
    149 
    150147                        <?php if ( ! $connected ) : ?>
    151148                                <p style="max-width:42rem">
    152                                         <?php esc_html_e( 'Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     149                                        <?php if ( $woo ) : ?>
     150                                                <?php esc_html_e( 'Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     151                                        <?php else : ?>
     152                                                <?php esc_html_e( 'Connect your site to Uptonica: what people send through your forms becomes contacts in your CRM, and you can add the AI assistant and Uptonica forms and popups to your pages.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     153                                        <?php endif; ?>
    153154                                </p>
    154155                                <p style="max-width:42rem">
    155                                         <?php esc_html_e( 'You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     156                                        <?php if ( $woo ) : ?>
     157                                                <?php esc_html_e( 'You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     158                                        <?php else : ?>
     159                                                <?php esc_html_e( 'You will sign in to Uptonica (or create an account) and choose the workspace. It takes a minute.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     160                                        <?php endif; ?>
    156161                                </p>
    157162                                <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
    … …  
    160165                                        <?php submit_button( __( 'Connect to Uptonica', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), 'primary', 'submit', false ); ?>
    161166                                </form>
    162                                 <?php if ( ! is_ssl() ) : ?>
     167                                <?php if ( $woo && ! is_ssl() ) : ?>
    163168                                        <p class="description"><?php esc_html_e( 'Your site is not served over https. WooCommerce may refuse to approve the connection until it is.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
    164169                                <?php endif; ?>
    … …  
    176181                                                <p class="description">
    177182                                                        <?php
    178                                                         /* translators: %s: date the store was connected. */
     183                                                        /* translators: %s: date the site was connected. */
    179184                                                        printf( esc_html__( 'Connected on %s.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), esc_html( wp_date( get_option( 'date_format' ), (int) $settings['connected_at'] ) ) );
    180185                                                        ?>
    … …  
    194199                                                                <label>
    195200                                                                        <input type="checkbox" name="site_tag_on" value="1" <?php checked( $settings['site_tag_on'] ); ?>>
    196                                                                         <?php esc_html_e( 'Add the Uptonica code to every page of the shop', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     201                                                                        <?php esc_html_e( 'Add the Uptonica code to every page', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
    197202                                                                </label>
    198203                                                                <p class="description">
    … …  
    208213                                        </tr>
    209214                                        <tr>
    210                                                 <th scope="row"><?php esc_html_e( 'Purchases', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
     215                                                <th scope="row"><?php esc_html_e( 'Forms', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
     216                                                <td>
     217                                                        <?php if ( '' === Uptonica_Forms::intake_url() ) : ?>
     218                                                                <p class="description"><?php esc_html_e( 'Disconnect and connect again to send your forms to Uptonica: this connection was made by an earlier version of the plugin.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
     219                                                        <?php else : ?>
     220                                                                <label>
     221                                                                        <input type="checkbox" name="forms_on" value="1" <?php checked( $settings['forms_on'] ); ?>>
     222                                                                        <?php esc_html_e( 'Send what people submit through your forms to Uptonica', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     223                                                                </label>
     224                                                                <p class="description">
     225                                                                        <?php
     226                                                                        $found = Uptonica_Forms::detected();
     227                                                                        if ( $found ) {
     228                                                                                /* translators: %s: names of the form plugins found on the site. */
     229                                                                                printf( esc_html__( 'Found on this site: %s.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), esc_html( implode( ', ', $found ) ) );
     230                                                                        } else {
     231                                                                                esc_html_e( 'Works with Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. None is active on this site yet.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' );
     232                                                                        }
     233                                                                        ?>
     234                                                                        <?php esc_html_e( 'Each submission with an email becomes a contact in your CRM. It reaches Meta as a lead only when the visitor accepted marketing cookies.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     235                                                                        <?php if ( ! empty( $settings['urls']['lead_sources'] ) ) : ?>
     236                                                                                <a href="<?php echo esc_url( $settings['urls']['lead_sources'] ); ?>" target="_blank" rel="noopener"><?php esc_html_e( 'See them in Uptonica', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></a>
     237                                                                        <?php endif; ?>
     238                                                                </p>
     239                                                                <p class="description">
     240                                                                        <?php esc_html_e( 'To show an Uptonica form or popup in a page, add the «Uptonica form» block, or the shortcode [uptonica_form id="…"].', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     241                                                                </p>
     242                                                        <?php endif; ?>
     243                                                </td>
     244                                        </tr>
     245                                        <tr>
     246                                                <th scope="row"><?php esc_html_e( 'Registrations', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
    211247                                                <td>
    212248                                                        <label>
    213                                                                 <input type="checkbox" name="purchases_on" value="1" <?php checked( $settings['purchases_on'] ); ?>>
    214                                                                 <?php esc_html_e( 'Send purchases to Uptonica from the server', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     249                                                                <input type="checkbox" name="users_on" value="1" <?php checked( $settings['users_on'] ); ?> <?php disabled( '' === Uptonica_Forms::intake_url() ); ?>>
     250                                                                <?php esc_html_e( 'Add people who register on this site to your CRM', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
    215251                                                        </label>
    216252                                                        <p class="description">
    217                                                                 <?php esc_html_e( 'A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     253                                                                <?php esc_html_e( 'They become contacts, without marketing consent: a registration is not a request to receive emails.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
    218254                                                        </p>
    219255                                                </td>
    220256                                        </tr>
     257                                        <?php if ( $woo ) : ?>
     258                                                <tr>
     259                                                        <th scope="row"><?php esc_html_e( 'Purchases', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></th>
     260                                                        <td>
     261                                                                <label>
     262                                                                        <input type="checkbox" name="purchases_on" value="1" <?php checked( $settings['purchases_on'] ); ?>>
     263                                                                        <?php esc_html_e( 'Send purchases to Uptonica from the server', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     264                                                                </label>
     265                                                                <p class="description">
     266                                                                        <?php esc_html_e( 'A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     267                                                                </p>
     268                                                        </td>
     269                                                </tr>
     270                                        <?php else : ?>
     271                                                <input type="hidden" name="purchases_on" value="<?php echo $settings['purchases_on'] ? '1' : ''; ?>">
     272                                        <?php endif; ?>
    221273                                </table>
    222274                                <?php submit_button(); ?>
    … …  
    225277                        <hr>
    226278                        <h2><?php esc_html_e( 'Disconnect', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></h2>
    227                         <p style="max-width:42rem"><?php esc_html_e( 'Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?></p>
    228                         <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" onsubmit="return window.confirm(this.dataset.confirm);" data-confirm="<?php esc_attr_e( 'Disconnect this store from Uptonica?', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>">
     279                        <p style="max-width:42rem">
     280                                <?php if ( $woo ) : ?>
     281                                        <?php esc_html_e( 'Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages. Forms stop being sent.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     282                                <?php else : ?>
     283                                        <?php esc_html_e( 'Removes the Uptonica code and forms from your pages, and forms stop being sent.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>
     284                                <?php endif; ?>
     285                        </p>
     286                        <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" onsubmit="return window.confirm(this.dataset.confirm);" data-confirm="<?php esc_attr_e( 'Disconnect this site from Uptonica?', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ); ?>">
    229287                                <input type="hidden" name="action" value="uptonica_disconnect">
    230288                                <?php wp_nonce_field( 'uptonica_disconnect' ); ?>
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/includes/class-uptonica-connection.php

    r3740886 r3743350  
    1111 * The connect flow.
    1212 *
    13  * 1. «Connect» sends the merchant to Uptonica with this site's address, the
    14  *    address of this admin page and a one-time state value.
    15  * 2. Uptonica asks which workspace, then runs WooCommerce's own approval
    16  *    screen (`/wc-auth/v1/authorize`), which hands Uptonica an API key.
    17  * 3. The merchant comes back here with a single-use code, which this plugin
    18  *    trades server to server for the workspace name and the public site tag
    19  *    credentials.
     13 * 1. «Connect» sends the site owner to Uptonica with this site's address,
     14 *    the address of this admin page, a one-time state value and whether
     15 *    WooCommerce runs here.
     16 * 2. Uptonica asks which workspace. On a WooCommerce store it then runs
     17 *    WooCommerce's own approval screen (`/wc-auth/v1/authorize`), which
     18 *    hands Uptonica an API key; any other site skips that step.
     19 * 3. The owner comes back here with a single-use code, which this plugin
     20 *    trades server to server for the workspace name, the public site tag
     21 *    credentials and the key of the site's lead source.
    2022 *
    21  * The API key never passes through this plugin: WooCommerce sends it to
    22  * Uptonica directly.
     23 * The WooCommerce API key never passes through this plugin: WooCommerce
     24 * sends it to Uptonica directly.
    2325 */
    2426class Uptonica_Connection {
    … …  
    7981                $url = add_query_arg(
    8082                        array(
    81                                 'site_url'   => rawurlencode( self::site_url() ),
    82                                 'return_url' => rawurlencode( self::page_url() ),
    83                                 'state'      => rawurlencode( $state ),
     83                                'site_url'    => rawurlencode( self::site_url() ),
     84                                'return_url'  => rawurlencode( self::page_url() ),
     85                                'state'       => rawurlencode( $state ),
     86                                'woocommerce' => Uptonica_Settings::has_woocommerce() ? '1' : '0',
    8487                        ),
    8588                        Uptonica_Settings::app_url() . '/wordpress/connect'
    … …  
    99102                }
    100103
    101                 if ( ! current_user_can( 'manage_woocommerce' ) ) {
     104                if ( ! current_user_can( Uptonica_Settings::capability() ) ) {
    102105                        return;
    103106                }
    … …  
    148151                                'site_tag'       => self::clean_site_tag( isset( $body['site_tag'] ) ? $body['site_tag'] : null ),
    149152                                'events_url'     => esc_url_raw( isset( $body['events_url'] ) ? $body['events_url'] : '' ),
     153                                'forms'          => self::clean_forms( isset( $body['forms'] ) ? $body['forms'] : null ),
    150154                        )
    151155                );
    152 
    153                 if ( ! $was_connected ) {
     156                delete_transient( Uptonica_Blocks::LIST_TRANSIENT );
     157
     158                if ( ! $was_connected && Uptonica_Settings::has_woocommerce() ) {
    154159                        Uptonica_Webhooks::schedule();
    155160                }
    … …  
    177182
    178183        /**
     184         * Keep the lead source addresses and key, as strings.
     185         *
     186         * @param mixed $forms Forms block from the exchange.
     187         * @return array{intake_url: string, list_url: string, key: string}|array{}
     188         */
     189        private static function clean_forms( $forms ) {
     190                if ( ! is_array( $forms ) || empty( $forms['intake_url'] ) || empty( $forms['list_url'] ) || empty( $forms['key'] ) ) {
     191                        return array();
     192                }
     193
     194                return array(
     195                        'intake_url' => esc_url_raw( $forms['intake_url'] ),
     196                        'list_url'   => esc_url_raw( $forms['list_url'] ),
     197                        'key'        => sanitize_text_field( $forms['key'] ),
     198                );
     199        }
     200
     201        /**
    179202         * «Disconnect»: revoke what Uptonica was given on this store, then forget
    180203         * the workspace.
    … …  
    187210                self::guard( 'uptonica_disconnect' );
    188211
    189                 self::revoke_api_keys();
    190                 Uptonica_Webhooks::delete_ours();
     212                if ( Uptonica_Settings::has_woocommerce() ) {
     213                        self::revoke_api_keys();
     214                        Uptonica_Webhooks::delete_ours();
     215                }
    191216                Uptonica_Webhooks::unschedule();
     217                Uptonica_Queue::clear( Uptonica_Forms::SEND_HOOK );
     218                delete_transient( Uptonica_Blocks::LIST_TRANSIENT );
    192219                Uptonica_Settings::forget_connection();
    193220
    … …  
    219246         */
    220247        private static function guard( $action ) {
    221                 if ( ! current_user_can( 'manage_woocommerce' ) ) {
     248                if ( ! current_user_can( Uptonica_Settings::capability() ) ) {
    222249                        wp_die( esc_html__( 'You are not allowed to manage this connection.', 'uptonica-ai-assistant-and-marketing-for-woocommerce' ), '', array( 'response' => 403 ) );
    223250                }
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/includes/class-uptonica-settings.php

    r3740886 r3743350  
    2929                        'site_tag'       => null,
    3030                        'events_url'     => '',
     31                        'forms'          => array(),
    3132                        // Off until the merchant turns it on: the tag puts the assistant
    3233                        // in front of shoppers, which nobody should get by surprise.
    3334                        'site_tag_on'    => false,
    3435                        'purchases_on'   => true,
     36                        // A form submission is a request to be contacted: on.
     37                        'forms_on'       => true,
     38                        // A registration is not: off until the site owner says so.
     39                        'users_on'       => false,
    3540                );
    3641        }
    … …  
    6974
    7075        /**
    71          * Forget the workspace. The two switches keep their position for a later
     76         * Forget the workspace. The switches keep their position for a later
    7277         * reconnect.
    7378         */
    … …  
    8691                        true
    8792                );
     93        }
     94
     95        /**
     96         * Whether WooCommerce runs on this site.
     97         *
     98         * @return bool
     99         */
     100        public static function has_woocommerce() {
     101                return class_exists( 'WooCommerce' );
     102        }
     103
     104        /**
     105         * Who may connect and configure: shop managers on a WooCommerce store,
     106         * administrators elsewhere.
     107         *
     108         * @return string
     109         */
     110        public static function capability() {
     111                return self::has_woocommerce() ? 'manage_woocommerce' : 'manage_options';
    88112        }
    89113
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/languages/uptonica-ai-assistant-and-marketing-for-woocommerce-it_IT.po

    r3740886 r3743350  
    1414"X-Domain: uptonica-ai-assistant-and-marketing-for-woocommerce\n"
    1515
    16 #. Plugin Name of the plugin
    17 #: uptonica.php
    18 msgid "Uptonica – AI assistant and marketing for WooCommerce"
    19 msgstr "Uptonica – Assistente AI e marketing per WooCommerce"
    20 
    2116#. Author URI of the plugin
    2217#: uptonica.php
    … …  
    2419msgstr "https://uptonica.com/"
    2520
    26 #. Description of the plugin
    27 #: uptonica.php
    28 msgid "Connect your WooCommerce store to Uptonica in one click: the AI shopping assistant on your site with a switch, store updates that keep arriving, and purchases sent from your server with the shopper's consent."
    29 msgstr "Collega il tuo negozio WooCommerce a Uptonica con un clic: l'assistente AI sul sito con un interruttore, aggiornamenti del negozio che arrivano sempre e acquisti inviati dal tuo server con il consenso del cliente."
    30 
    3121#. Author of the plugin
    3222#: uptonica.php
    … …  
    3424msgstr "Uptonica"
    3525
    36 #: includes/class-uptonica-admin.php:59
     26#: includes/class-uptonica-admin.php:58
    3727msgid "Settings"
    3828msgstr "Impostazioni"
    3929
    40 #: includes/class-uptonica-admin.php:82
     30#: includes/class-uptonica-admin.php:81
    4131msgid "Uptonica is installed but not connected yet."
    4232msgstr "Uptonica è installato ma non ancora collegato."
    4333
    44 #: includes/class-uptonica-admin.php:84
    45 msgid "Connect your store"
    46 msgstr "Collega il negozio"
    47 
    48 #: includes/class-uptonica-admin.php:93
    49 #: includes/class-uptonica-connection.php:222
     34#: includes/class-uptonica-admin.php:92
     35#: includes/class-uptonica-connection.php:249
    5036msgid "You are not allowed to manage this connection."
    5137msgstr "Non hai i permessi per gestire questo collegamento."
    5238
    53 #: includes/class-uptonica-admin.php:117
    54 msgid "Your store is connected to Uptonica."
    55 msgstr "Il negozio è collegato a Uptonica."
    56 
    57 #: includes/class-uptonica-admin.php:118
    58 msgid "Your store is disconnected. Uptonica can no longer read it."
    59 msgstr "Il negozio è scollegato. Uptonica non può più leggerlo."
    60 
    61 #: includes/class-uptonica-admin.php:119
     39#: includes/class-uptonica-admin.php:120
    6240msgid "Settings saved."
    6341msgstr "Impostazioni salvate."
    6442
    65 #: includes/class-uptonica-admin.php:120
     43#: includes/class-uptonica-admin.php:121
    6644msgid "The connection was cancelled. Nothing was changed."
    6745msgstr "Il collegamento è stato annullato. Non è cambiato nulla."
    6846
    69 #: includes/class-uptonica-admin.php:121
     47#: includes/class-uptonica-admin.php:122
    7048msgid "This connection attempt expired or was started from another browser. Click Connect again."
    7149msgstr "Questo tentativo di collegamento è scaduto o è partito da un altro browser. Clicca di nuovo Collega."
    7250
    73 #: includes/class-uptonica-admin.php:122
    74 msgid "WooCommerce approved the connection, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
    75 msgstr "WooCommerce ha approvato il collegamento, ma questo sito non è riuscito a raggiungere Uptonica per completarlo. Di solito la causa è un firewall o un plugin di sicurezza che blocca le richieste in uscita. Clicca di nuovo Collega."
    76 
    77 #: includes/class-uptonica-admin.php:146
    78 msgid "Uptonica needs WooCommerce. Install and activate WooCommerce, then come back here to connect your store."
    79 msgstr "Uptonica ha bisogno di WooCommerce. Installa e attiva WooCommerce, poi torna qui per collegare il negozio."
    80 
    81 #: includes/class-uptonica-admin.php:152
     51#: includes/class-uptonica-admin.php:150
    8252msgid "Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch."
    8353msgstr "Collega il negozio a Uptonica: catalogo, ordini e clienti restano allineati e puoi aggiungere l'assistente AI al sito con un interruttore."
    8454
    85 #: includes/class-uptonica-admin.php:155
     55#: includes/class-uptonica-admin.php:157
    8656msgid "You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute."
    8757msgstr "Accederai a Uptonica (o creerai un account), sceglierai il workspace e approverai l'accesso in una schermata di WooCommerce. Serve un minuto."
    8858
    89 #: includes/class-uptonica-admin.php:160
     59#: includes/class-uptonica-admin.php:165
    9060msgid "Connect to Uptonica"
    9161msgstr "Collega a Uptonica"
    9262
    93 #: includes/class-uptonica-admin.php:163
     63#: includes/class-uptonica-admin.php:168
    9464msgid "Your site is not served over https. WooCommerce may refuse to approve the connection until it is."
    9565msgstr "Il sito non è servito in https. WooCommerce potrebbe rifiutare il collegamento finché non lo è."
    9666
    97 #: includes/class-uptonica-admin.php:170
     67#: includes/class-uptonica-admin.php:175
    9868msgid "Workspace"
    9969msgstr "Workspace"
    10070
    101 #: includes/class-uptonica-admin.php:174
     71#: includes/class-uptonica-admin.php:179
    10272msgid "Open in Uptonica"
    10373msgstr "Apri in Uptonica"
    10474
    105 #. translators: %s: date the store was connected.
    106 #: includes/class-uptonica-admin.php:179
     75#. translators: %s: date the site was connected.
     76#: includes/class-uptonica-admin.php:184
    10777#, php-format
    10878msgid "Connected on %s."
    10979msgstr "Collegato il %s."
    11080
    111 #: includes/class-uptonica-admin.php:191
     81#: includes/class-uptonica-admin.php:196
    11282msgid "On your site"
    11383msgstr "Sul tuo sito"
    11484
    115 #: includes/class-uptonica-admin.php:196
    116 msgid "Add the Uptonica code to every page of the shop"
    117 msgstr "Aggiungi il codice Uptonica a tutte le pagine del negozio"
    118 
    119 #: includes/class-uptonica-admin.php:199
     85#: includes/class-uptonica-admin.php:204
    12086msgid "It shows the AI assistant and measures visits, following your cookie banner. What it shows is decided in Uptonica."
    12187msgstr "Mostra l'assistente AI e misura le visite, rispettando il banner dei cookie. Cosa mostrare si sceglie in Uptonica."
    12288
    123 #: includes/class-uptonica-admin.php:201
     89#: includes/class-uptonica-admin.php:206
    12490msgid "Choose in Uptonica"
    12591msgstr "Scegli in Uptonica"
    12692
    127 #: includes/class-uptonica-admin.php:205
     93#: includes/class-uptonica-admin.php:210
    12894msgid "This workspace has no assistant set up yet. Set it up in Uptonica, then disconnect and connect again here."
    12995msgstr "Questo workspace non ha ancora un assistente. Configuralo in Uptonica, poi scollega e ricollega qui."
    13096
    131 #: includes/class-uptonica-admin.php:210
     97#: includes/class-uptonica-admin.php:259
    13298msgid "Purchases"
    13399msgstr "Acquisti"
    134100
    135 #: includes/class-uptonica-admin.php:214
     101#: includes/class-uptonica-admin.php:263
    136102msgid "Send purchases to Uptonica from the server"
    137103msgstr "Invia gli acquisti a Uptonica dal server"
    138104
    139 #: includes/class-uptonica-admin.php:217
     105#: includes/class-uptonica-admin.php:266
    140106msgid "A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner."
    141107msgstr "L'acquisto viene contato anche se il cliente non arriva alla pagina di ringraziamento o blocca gli script. Viene inviato solo se il cliente ha accettato la misurazione nel banner dei cookie."
    142108
    143 #: includes/class-uptonica-admin.php:226
    144 #: includes/class-uptonica-admin.php:231
     109#: includes/class-uptonica-admin.php:278 includes/class-uptonica-admin.php:289
    145110msgid "Disconnect"
    146111msgstr "Scollega"
    147112
    148 #: includes/class-uptonica-admin.php:227
    149 msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages."
    150 msgstr "Rimuove da questo negozio la chiave di accesso e gli avvisi di aggiornamento concessi a Uptonica, e toglie il codice Uptonica dalle pagine."
    151 
    152 #: includes/class-uptonica-admin.php:228
    153 msgid "Disconnect this store from Uptonica?"
    154 msgstr "Scollegare questo negozio da Uptonica?"
     113#. Plugin Name of the plugin
     114#: uptonica.php
     115msgid "Uptonica – AI assistant, forms and marketing"
     116msgstr "Uptonica – assistente AI, moduli e marketing"
     117
     118#. Description of the plugin
     119#: uptonica.php
     120msgid "Connect your WordPress site or WooCommerce store to Uptonica: your forms become contacts in your CRM, Uptonica forms and popups go in your pages, the AI assistant goes on your site with a switch, and a store's updates and purchases keep arriving."
     121msgstr "Collega il tuo sito WordPress o il tuo negozio WooCommerce a Uptonica: i tuoi moduli diventano contatti nel CRM, moduli e popup di Uptonica entrano nelle tue pagine, l'assistente AI arriva sul sito con un interruttore, e aggiornamenti e acquisti del negozio continuano ad arrivare."
     122
     123#: includes/class-uptonica-admin.php:83
     124msgid "Connect your site"
     125msgstr "Collega il tuo sito"
     126
     127#: includes/class-uptonica-admin.php:118
     128msgid "Your site is connected to Uptonica."
     129msgstr "Il tuo sito è collegato a Uptonica."
     130
     131#: includes/class-uptonica-admin.php:119
     132msgid "Your site is disconnected from Uptonica."
     133msgstr "Il tuo sito è scollegato da Uptonica."
     134
     135#: includes/class-uptonica-admin.php:123
     136msgid "The connection was approved, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
     137msgstr "Il collegamento è stato approvato, ma questo sito non è riuscito a raggiungere Uptonica per completarlo. Di solito la causa è un firewall o un plugin di sicurezza che blocca le richieste in uscita. Clicca di nuovo su Collega."
     138
     139#: includes/class-uptonica-admin.php:152
     140msgid "Connect your site to Uptonica: what people send through your forms becomes contacts in your CRM, and you can add the AI assistant and Uptonica forms and popups to your pages."
     141msgstr "Collega il tuo sito a Uptonica: quello che le persone inviano dai tuoi moduli diventa un contatto nel CRM, e puoi aggiungere alle tue pagine l'assistente AI e i moduli e i popup di Uptonica."
     142
     143#: includes/class-uptonica-admin.php:159
     144msgid "You will sign in to Uptonica (or create an account) and choose the workspace. It takes a minute."
     145msgstr "Accederai a Uptonica (o creerai un account) e sceglierai il workspace. Ci vuole un minuto."
     146
     147#: includes/class-uptonica-admin.php:201
     148msgid "Add the Uptonica code to every page"
     149msgstr "Aggiungi il codice Uptonica a tutte le pagine"
     150
     151#: includes/class-uptonica-admin.php:215
     152msgid "Forms"
     153msgstr "Moduli"
     154
     155#: includes/class-uptonica-admin.php:218
     156msgid "Disconnect and connect again to send your forms to Uptonica: this connection was made by an earlier version of the plugin."
     157msgstr "Scollega e ricollega il sito per inviare i tuoi moduli a Uptonica: questo collegamento è stato fatto con una versione precedente del plugin."
     158
     159#: includes/class-uptonica-admin.php:222
     160msgid "Send what people submit through your forms to Uptonica"
     161msgstr "Invia a Uptonica quello che le persone inviano dai tuoi moduli"
     162
     163#. translators: %s: names of the form plugins found on the site.
     164#: includes/class-uptonica-admin.php:229
     165#, php-format
     166msgid "Found on this site: %s."
     167msgstr "Trovati su questo sito: %s."
     168
     169#: includes/class-uptonica-admin.php:231
     170msgid "Works with Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. None is active on this site yet."
     171msgstr "Funziona con Contact Form 7, WPForms, Gravity Forms, Fluent Forms e i moduli di Elementor Pro. Nessuno è ancora attivo su questo sito."
     172
     173#: includes/class-uptonica-admin.php:234
     174msgid "Each submission with an email becomes a contact in your CRM. It reaches Meta as a lead only when the visitor accepted marketing cookies."
     175msgstr "Ogni invio con un'email diventa un contatto nel CRM. Arriva a Meta come lead solo se il visitatore ha accettato i cookie di marketing."
     176
     177#: includes/class-uptonica-admin.php:236
     178msgid "See them in Uptonica"
     179msgstr "Vedili in Uptonica"
     180
     181#: includes/class-uptonica-admin.php:240
     182msgid "To show an Uptonica form or popup in a page, add the «Uptonica form» block, or the shortcode [uptonica_form id=\"…\"]."
     183msgstr "Per mostrare un modulo o un popup di Uptonica in una pagina, aggiungi il blocco «Modulo Uptonica» oppure lo shortcode [uptonica_form id=\"…\"]."
     184
     185#: includes/class-uptonica-admin.php:246
     186msgid "Registrations"
     187msgstr "Registrazioni"
     188
     189#: includes/class-uptonica-admin.php:250
     190msgid "Add people who register on this site to your CRM"
     191msgstr "Aggiungi al CRM chi si registra su questo sito"
     192
     193#: includes/class-uptonica-admin.php:253
     194msgid "They become contacts, without marketing consent: a registration is not a request to receive emails."
     195msgstr "Diventano contatti, senza consenso al marketing: una registrazione non è una richiesta di ricevere email."
     196
     197#: includes/class-uptonica-admin.php:281
     198msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages. Forms stop being sent."
     199msgstr "Rimuove la chiave di accesso e gli avvisi di aggiornamento concessi a Uptonica su questo negozio, e il codice Uptonica dalle tue pagine. I moduli smettono di essere inviati."
     200
     201#: includes/class-uptonica-admin.php:283
     202msgid "Removes the Uptonica code and forms from your pages, and forms stop being sent."
     203msgstr "Rimuove il codice e i moduli di Uptonica dalle tue pagine, e i moduli smettono di essere inviati."
     204
     205#: includes/class-uptonica-admin.php:286
     206msgid "Disconnect this site from Uptonica?"
     207msgstr "Scollegare questo sito da Uptonica?"
     208
     209#: assets/form-block.js:13 assets/form-block.js:51 assets/form-block.js:68
     210msgid "Uptonica form"
     211msgstr "Modulo Uptonica"
     212
     213#: assets/form-block.js:14
     214msgid "A form or popup made in Uptonica."
     215msgstr "Un modulo o un popup creato in Uptonica."
     216
     217#: assets/form-block.js:39
     218msgid "Connect this site to Uptonica first, from the Uptonica page in the admin menu."
     219msgstr "Prima collega questo sito a Uptonica, dalla pagina Uptonica nel menu di amministrazione."
     220
     221#: assets/form-block.js:42
     222msgid "Choose a form"
     223msgstr "Scegli un modulo"
     224
     225#: assets/form-block.js:44
     226msgid "popup"
     227msgstr "popup"
     228
     229#: assets/form-block.js:61
     230msgid "This workspace has no forms yet."
     231msgstr "Questo workspace non ha ancora moduli."
     232
     233#: assets/form-block.js:65
     234msgid "Create or edit forms in Uptonica"
     235msgstr "Crea o modifica i moduli in Uptonica"
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/languages/uptonica-ai-assistant-and-marketing-for-woocommerce.pot

    r3740886 r3743350  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Uptonica – AI assistant and marketing for WooCommerce 1.0.0\n"
     5"Project-Id-Version: Uptonica – AI assistant, forms and marketing 1.1.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/uptonica-ai-assistant-and-marketing-for-woocommerce\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-10-12T08:16:31+00:00\n"
     12"POT-Creation-Date: 2026-10-13T07:41:03+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    1717#. Plugin Name of the plugin
    1818#: uptonica.php
    19 msgid "Uptonica – AI assistant and marketing for WooCommerce"
     19msgid "Uptonica – AI assistant, forms and marketing"
    2020msgstr ""
    2121
    2222#. Description of the plugin
    2323#: uptonica.php
    24 msgid "Connect your WooCommerce store to Uptonica in one click: the AI shopping assistant on your site with a switch, store updates that keep arriving, and purchases sent from your server with the shopper's consent."
     24msgid "Connect your WordPress site or WooCommerce store to Uptonica: your forms become contacts in your CRM, Uptonica forms and popups go in your pages, the AI assistant goes on your site with a switch, and a store's updates and purchases keep arriving."
    2525msgstr ""
    2626
    … …  
    3535msgstr ""
    3636
    37 #: includes/class-uptonica-admin.php:59
     37#: includes/class-uptonica-admin.php:58
    3838msgid "Settings"
    3939msgstr ""
    4040
    41 #: includes/class-uptonica-admin.php:82
     41#: includes/class-uptonica-admin.php:81
    4242msgid "Uptonica is installed but not connected yet."
    4343msgstr ""
    4444
    45 #: includes/class-uptonica-admin.php:84
    46 msgid "Connect your store"
    47 msgstr ""
    48 
    49 #: includes/class-uptonica-admin.php:93
    50 #: includes/class-uptonica-connection.php:222
     45#: includes/class-uptonica-admin.php:83
     46msgid "Connect your site"
     47msgstr ""
     48
     49#: includes/class-uptonica-admin.php:92
     50#: includes/class-uptonica-connection.php:249
    5151msgid "You are not allowed to manage this connection."
    5252msgstr ""
    5353
    54 #: includes/class-uptonica-admin.php:117
    55 msgid "Your store is connected to Uptonica."
    56 msgstr ""
    57 
    5854#: includes/class-uptonica-admin.php:118
    59 msgid "Your store is disconnected. Uptonica can no longer read it."
     55msgid "Your site is connected to Uptonica."
    6056msgstr ""
    6157
    6258#: includes/class-uptonica-admin.php:119
     59msgid "Your site is disconnected from Uptonica."
     60msgstr ""
     61
     62#: includes/class-uptonica-admin.php:120
    6363msgid "Settings saved."
    6464msgstr ""
    6565
    66 #: includes/class-uptonica-admin.php:120
     66#: includes/class-uptonica-admin.php:121
    6767msgid "The connection was cancelled. Nothing was changed."
    6868msgstr ""
    6969
    70 #: includes/class-uptonica-admin.php:121
     70#: includes/class-uptonica-admin.php:122
    7171msgid "This connection attempt expired or was started from another browser. Click Connect again."
    7272msgstr ""
    7373
    74 #: includes/class-uptonica-admin.php:122
    75 msgid "WooCommerce approved the connection, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
    76 msgstr ""
    77 
    78 #: includes/class-uptonica-admin.php:146
    79 msgid "Uptonica needs WooCommerce. Install and activate WooCommerce, then come back here to connect your store."
     74#: includes/class-uptonica-admin.php:123
     75msgid "The connection was approved, but this site could not reach Uptonica to finish it. A firewall or security plugin blocking outgoing requests is the usual cause. Click Connect again."
     76msgstr ""
     77
     78#: includes/class-uptonica-admin.php:150
     79msgid "Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch."
    8080msgstr ""
    8181
    8282#: includes/class-uptonica-admin.php:152
    83 msgid "Connect your store to Uptonica: your catalog, orders and customers stay in sync, and you can add the AI shopping assistant to your site with a switch."
    84 msgstr ""
    85 
    86 #: includes/class-uptonica-admin.php:155
     83msgid "Connect your site to Uptonica: what people send through your forms becomes contacts in your CRM, and you can add the AI assistant and Uptonica forms and popups to your pages."
     84msgstr ""
     85
     86#: includes/class-uptonica-admin.php:157
    8787msgid "You will sign in to Uptonica (or create an account), choose the workspace, then approve access on a WooCommerce screen. It takes a minute."
    8888msgstr ""
    8989
    90 #: includes/class-uptonica-admin.php:160
     90#: includes/class-uptonica-admin.php:159
     91msgid "You will sign in to Uptonica (or create an account) and choose the workspace. It takes a minute."
     92msgstr ""
     93
     94#: includes/class-uptonica-admin.php:165
    9195msgid "Connect to Uptonica"
    9296msgstr ""
    9397
    94 #: includes/class-uptonica-admin.php:163
     98#: includes/class-uptonica-admin.php:168
    9599msgid "Your site is not served over https. WooCommerce may refuse to approve the connection until it is."
    96100msgstr ""
    97101
    98 #: includes/class-uptonica-admin.php:170
     102#: includes/class-uptonica-admin.php:175
    99103msgid "Workspace"
    100104msgstr ""
    101105
    102 #: includes/class-uptonica-admin.php:174
     106#: includes/class-uptonica-admin.php:179
    103107msgid "Open in Uptonica"
    104108msgstr ""
    105109
    106 #. translators: %s: date the store was connected.
    107 #: includes/class-uptonica-admin.php:179
     110#. translators: %s: date the site was connected.
     111#: includes/class-uptonica-admin.php:184
    108112#, php-format
    109113msgid "Connected on %s."
    110114msgstr ""
    111115
    112 #: includes/class-uptonica-admin.php:191
     116#: includes/class-uptonica-admin.php:196
    113117msgid "On your site"
    114118msgstr ""
    115119
    116 #: includes/class-uptonica-admin.php:196
    117 msgid "Add the Uptonica code to every page of the shop"
    118 msgstr ""
    119 
    120 #: includes/class-uptonica-admin.php:199
     120#: includes/class-uptonica-admin.php:201
     121msgid "Add the Uptonica code to every page"
     122msgstr ""
     123
     124#: includes/class-uptonica-admin.php:204
    121125msgid "It shows the AI assistant and measures visits, following your cookie banner. What it shows is decided in Uptonica."
    122126msgstr ""
    123127
    124 #: includes/class-uptonica-admin.php:201
     128#: includes/class-uptonica-admin.php:206
    125129msgid "Choose in Uptonica"
    126130msgstr ""
    127131
    128 #: includes/class-uptonica-admin.php:205
     132#: includes/class-uptonica-admin.php:210
    129133msgid "This workspace has no assistant set up yet. Set it up in Uptonica, then disconnect and connect again here."
    130134msgstr ""
    131135
    132 #: includes/class-uptonica-admin.php:210
     136#: includes/class-uptonica-admin.php:215
     137msgid "Forms"
     138msgstr ""
     139
     140#: includes/class-uptonica-admin.php:218
     141msgid "Disconnect and connect again to send your forms to Uptonica: this connection was made by an earlier version of the plugin."
     142msgstr ""
     143
     144#: includes/class-uptonica-admin.php:222
     145msgid "Send what people submit through your forms to Uptonica"
     146msgstr ""
     147
     148#. translators: %s: names of the form plugins found on the site.
     149#: includes/class-uptonica-admin.php:229
     150#, php-format
     151msgid "Found on this site: %s."
     152msgstr ""
     153
     154#: includes/class-uptonica-admin.php:231
     155msgid "Works with Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. None is active on this site yet."
     156msgstr ""
     157
     158#: includes/class-uptonica-admin.php:234
     159msgid "Each submission with an email becomes a contact in your CRM. It reaches Meta as a lead only when the visitor accepted marketing cookies."
     160msgstr ""
     161
     162#: includes/class-uptonica-admin.php:236
     163msgid "See them in Uptonica"
     164msgstr ""
     165
     166#: includes/class-uptonica-admin.php:240
     167msgid "To show an Uptonica form or popup in a page, add the «Uptonica form» block, or the shortcode [uptonica_form id=\"…\"]."
     168msgstr ""
     169
     170#: includes/class-uptonica-admin.php:246
     171msgid "Registrations"
     172msgstr ""
     173
     174#: includes/class-uptonica-admin.php:250
     175msgid "Add people who register on this site to your CRM"
     176msgstr ""
     177
     178#: includes/class-uptonica-admin.php:253
     179msgid "They become contacts, without marketing consent: a registration is not a request to receive emails."
     180msgstr ""
     181
     182#: includes/class-uptonica-admin.php:259
    133183msgid "Purchases"
    134184msgstr ""
    135185
    136 #: includes/class-uptonica-admin.php:214
     186#: includes/class-uptonica-admin.php:263
    137187msgid "Send purchases to Uptonica from the server"
    138188msgstr ""
    139189
    140 #: includes/class-uptonica-admin.php:217
     190#: includes/class-uptonica-admin.php:266
    141191msgid "A purchase is counted even when the shopper never reaches the thank-you page or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner."
    142192msgstr ""
    143193
    144 #: includes/class-uptonica-admin.php:226
    145 #: includes/class-uptonica-admin.php:231
     194#: includes/class-uptonica-admin.php:278
     195#: includes/class-uptonica-admin.php:289
    146196msgid "Disconnect"
    147197msgstr ""
    148198
    149 #: includes/class-uptonica-admin.php:227
    150 msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages."
    151 msgstr ""
    152 
    153 #: includes/class-uptonica-admin.php:228
    154 msgid "Disconnect this store from Uptonica?"
    155 msgstr ""
     199#: includes/class-uptonica-admin.php:281
     200msgid "Removes the access key and the update notifications Uptonica was given on this store, and the Uptonica code from your pages. Forms stop being sent."
     201msgstr ""
     202
     203#: includes/class-uptonica-admin.php:283
     204msgid "Removes the Uptonica code and forms from your pages, and forms stop being sent."
     205msgstr ""
     206
     207#: includes/class-uptonica-admin.php:286
     208msgid "Disconnect this site from Uptonica?"
     209msgstr ""
     210
     211#: assets/form-block.js:13
     212#: assets/form-block.js:51
     213#: assets/form-block.js:68
     214msgid "Uptonica form"
     215msgstr ""
     216
     217#: assets/form-block.js:14
     218msgid "A form or popup made in Uptonica."
     219msgstr ""
     220
     221#: assets/form-block.js:39
     222msgid "Connect this site to Uptonica first, from the Uptonica page in the admin menu."
     223msgstr ""
     224
     225#: assets/form-block.js:42
     226msgid "Choose a form"
     227msgstr ""
     228
     229#: assets/form-block.js:44
     230msgid "popup"
     231msgstr ""
     232
     233#: assets/form-block.js:61
     234msgid "This workspace has no forms yet."
     235msgstr ""
     236
     237#: assets/form-block.js:65
     238msgid "Create or edit forms in Uptonica"
     239msgstr ""
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/readme.txt

    r3740994 r3743350  
    1 === Uptonica – AI assistant and marketing for WooCommerce ===
     1=== Uptonica – AI assistant, forms and marketing ===
    22Contributors: uptonica
    3 Tags: woocommerce, ai assistant, chatbot, email marketing, analytics
     3Tags: crm, forms, ai assistant, woocommerce, lead generation
    44Requires at least: 6.3
    55Tested up to: 7.1
    66Requires PHP: 7.4
    7 Stable tag: 1.0.1
     7Stable tag: 1.1.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Connect your WooCommerce store to Uptonica in one click: an AI shopping assistant on your site, marketing automations and reliable sales data.
     11Connect your WordPress site or WooCommerce store to Uptonica: your forms become CRM contacts, Uptonica forms and popups in your pages, an AI assistant.
    1212
    1313== Description ==
    1414
    15 [Uptonica](https://uptonica.com/) is an AI platform for online stores: an AI shopping assistant that answers your customers from your real catalog, email and WhatsApp automations, product content and advertising reports.
     15[Uptonica](https://uptonica.com/) is an AI marketing platform: a CRM with email and WhatsApp automations, forms and popups, an AI assistant that answers your visitors, and, for online stores, product content and advertising reports.
    1616
    17 This plugin connects your WooCommerce store to your Uptonica workspace without copying API keys by hand.
     17This plugin connects your site to your Uptonica workspace without copying keys or code by hand. It works on any WordPress site; on a WooCommerce store it also connects the store.
    1818
    19 = What the plugin does =
     19= On every site =
    2020
    21 * **One-click connection.** Click «Connect to Uptonica», choose your workspace, approve access on the standard WooCommerce screen. Your catalog, orders and customers stay in sync.
    22 * **The assistant with a switch.** Add the Uptonica code to every page of the shop without editing your theme or Tag Manager. What it shows (the assistant, visit measurement) is chosen in Uptonica.
    23 * **Store updates that keep arriving.** WooCommerce switches a webhook off after a few failed deliveries and drops the failed ones. For Uptonica's webhooks, the plugin sends failed deliveries again later and switches them back on, so your store never silently stops updating.
     21* **One-click connection.** Click «Connect to Uptonica» and choose your workspace.
     22* **Your forms become contacts.** What people send through Contact Form 7, WPForms, Gravity Forms, Fluent Forms or Elementor Pro forms also reaches your Uptonica CRM: each submission with an email becomes a contact, shows in «Lead sources» and can start your automations. Your forms keep working as before.
     23* **Uptonica forms and popups in your pages.** Add the «Uptonica form» block, or the `[uptonica_form id="…"]` shortcode, to show a form or popup made in Uptonica.
     24* **Leads counted from the server.** A form submission reaches Meta as a lead, from your server, only when the visitor accepted marketing cookies, so a blocked browser script does not lose it.
     25* **Registrations as contacts.** Optionally, people who register on your site join your CRM (without marketing consent).
     26* **The assistant with a switch.** Add the Uptonica code to every page without editing your theme or Tag Manager. What it shows (the assistant, visit measurement) is chosen in Uptonica.
     27
     28= On a WooCommerce store, also =
     29
     30* **Store connection.** Approve access on the standard WooCommerce screen: your catalog, orders and customers stay in sync.
     31* **Store updates that keep arriving.** WooCommerce switches a webhook off after a few failed deliveries and drops the failed ones. For Uptonica's webhooks, the plugin sends failed deliveries again later and switches them back on.
    2432* **Purchases from the server.** A purchase is counted even when the shopper pays on an external page and never returns to the thank-you page, or blocks scripts. It is sent only when the shopper accepted measurement in your cookie banner.
    2533
    2634= Requirements =
    2735
    28 * WooCommerce 8.0 or later.
    2936* An Uptonica account. You can create one during the connection.
    30 * A site served over https (WooCommerce's approval screen requires it).
     37* For the store features: WooCommerce 8.0 or later and a site served over https (WooCommerce's approval screen requires it).
    3138
    3239== External services ==
    … …  
    3441This plugin connects to Uptonica (https://uptonica.com/), a service run by the plugin's author. Without it the plugin does nothing.
    3542
    36 * **When you click «Connect to Uptonica»**, your browser is sent to app.uptonica.com with your site address and the address of the plugin page. After you approve on the WooCommerce screen, WooCommerce sends Uptonica a REST API key for your store, and the plugin calls `https://app.uptonica.com/api/wordpress/v1/exchange` once, from your server, to learn which workspace it joined.
    37 * **When «Add the Uptonica code to every page» is on**, every page of the shop loads `https://app.uptonica.com/widget/uptonica.js`. It shows the AI assistant and, following your cookie banner, measures visits. Visitors' browsers then talk to app.uptonica.com.
    38 * **When «Send purchases from the server» is on**, each paid order whose shopper accepted measurement is sent from your server to `https://app.uptonica.com/api/events`: order number, total, currency, products, the shopper's email (used to match the purchase to an existing contact and not stored on the event), IP address and browser user agent, and the analytics cookies already on the shopper's device (`_uton_aid`, `_ga`, `_fbp`, `_fbc`).
     43* **When you click «Connect to Uptonica»**, your browser is sent to app.uptonica.com with your site address, the address of the plugin page and whether WooCommerce is active. On a store, after you approve on the WooCommerce screen, WooCommerce sends Uptonica a REST API key for your store. Then the plugin calls `https://app.uptonica.com/api/wordpress/v1/exchange` once, from your server, to learn which workspace it joined and receive the key of your site's lead source.
     44* **When «Send what people submit through your forms» is on**, each submission with an email is sent from your server to your lead source at `https://app.uptonica.com/api/crm/forms/intake/…`: the fields the person filled in, the form's name, their IP address and browser user agent, the Uptonica visitor id (`_uton_aid`) when they accepted measurement, and the Meta click id from `_fbc` when they accepted marketing.
     45* **When «Add people who register on this site» is on**, each new account's email and name are sent the same way.
     46* **In the block editor**, the «Uptonica form» block reads the list of your workspace's forms from `https://app.uptonica.com/api/wordpress/v1/forms`. A page with the block or shortcode loads the form from `https://app.uptonica.com/f/…`, and the visitor's browser then talks to app.uptonica.com.
     47* **When «Add the Uptonica code to every page» is on**, every page loads `https://app.uptonica.com/widget/uptonica.js`. It shows the AI assistant and, following your cookie banner, measures visits.
     48* **When «Send purchases from the server» is on** (stores only), each paid order whose shopper accepted measurement is sent from your server to `https://app.uptonica.com/api/events`: order number, total, currency, products, the shopper's email (used to match the purchase to an existing contact and not stored on the event), IP address and browser user agent, and the analytics cookies already on the shopper's device (`_uton_aid`, `_ga`, `_fbp`, `_fbc`).
    3949* **Store updates** are sent by WooCommerce's own webhooks, which Uptonica registers on your store during the connection.
    4050
    … …  
    4353== Installation ==
    4454
    45 1. Install and activate WooCommerce.
    46 2. Install and activate this plugin.
    47 3. Go to WooCommerce → Uptonica and click «Connect to Uptonica».
     551. Install and activate this plugin.
     562. Open the Uptonica page (in the admin menu, or under WooCommerce on a store) and click «Connect to Uptonica».
    4857
    4958== Frequently Asked Questions ==
    5059
     60= Do I need WooCommerce? =
     61
     62No. Without WooCommerce you get the forms, the registrations, the Uptonica code and the block. WooCommerce adds the store connection, its updates and purchases.
     63
    5164= Does the plugin store my API keys? =
    5265
    53 No. WooCommerce creates the key on its approval screen and sends it to Uptonica directly. The plugin only stores the workspace name and the public code of your Uptonica site tag.
     66No WooCommerce key: WooCommerce creates it on its approval screen and sends it to Uptonica directly. The plugin stores the workspace name, the public code of your Uptonica site tag and the key of your site's lead source, which it never prints in a page.
     67
     68= Which form plugins are supported? =
     69
     70Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro forms. A submission without an email address is not sent.
    5471
    5572= How do I disconnect? =
    5673
    57 WooCommerce → Uptonica → Disconnect. It deletes the API key and the webhooks Uptonica was given on your store and removes the Uptonica code from your pages.
     74Uptonica → Disconnect. On a store it also deletes the API key and the webhooks Uptonica was given. Your pages lose the Uptonica code and forms, and submissions stop being sent.
    5875
    59 = Which cookie banners are supported for purchases sent from the server? =
     76= Which cookie banners are supported? =
    6077
    61 Any banner that implements the WP Consent API, plus Complianz, CookieYes, Cookiebot, OneTrust and iubenda. With any other banner, a purchase is sent only if the Uptonica code had already been allowed to measure that visitor.
     78Any banner that implements the WP Consent API, plus Complianz, CookieYes, Cookiebot, OneTrust and iubenda. With any other banner, a purchase is sent only if the Uptonica code had already been allowed to measure that visitor, and a form submission still becomes a contact but never reaches Meta.
    6279
    6380== Changelog ==
     81
     82= 1.1.0 =
     83* Works on any WordPress site, with or without WooCommerce.
     84* Submissions from Contact Form 7, WPForms, Gravity Forms, Fluent Forms and Elementor Pro become contacts in Uptonica, and leads for Meta with the visitor's consent.
     85* «Uptonica form» block and `[uptonica_form]` shortcode for Uptonica forms and popups.
     86* Optional: people who register on the site become contacts.
    6487
    6588= 1.0.1 =
  • uptonica-ai-assistant-and-marketing-for-woocommerce/trunk/uptonica.php

    r3740994 r3743350  
    11<?php
    22/**
    3  * Plugin Name:       Uptonica – AI assistant and marketing for WooCommerce
    4  * Description:       Connect your WooCommerce store to Uptonica in one click: the AI shopping assistant on your site with a switch, store updates that keep arriving, and purchases sent from your server with the shopper's consent.
    5  * Version:           1.0.1
     3 * Plugin Name:       Uptonica – AI assistant, forms and marketing
     4 * Description:       Connect your WordPress site or WooCommerce store to Uptonica: your forms become contacts in your CRM, Uptonica forms and popups go in your pages, the AI assistant goes on your site with a switch, and a store's updates and purchases keep arriving.
     5 * Version:           1.1.0
    66 * Requires at least: 6.3
    77 * Requires PHP:      7.4
    8  * Requires Plugins:  woocommerce
    98 * Author:            Uptonica
    109 * Author URI:        https://uptonica.com/
    … …  
    2120defined( 'ABSPATH' ) || exit;
    2221
    23 define( 'UPTONICA_VERSION', '1.0.1' );
     22define( 'UPTONICA_VERSION', '1.1.0' );
    2423define( 'UPTONICA_FILE', __FILE__ );
    2524define( 'UPTONICA_DIR', plugin_dir_path( __FILE__ ) );
    … …  
    3736require_once UPTONICA_DIR . 'includes/class-uptonica-consent.php';
    3837require_once UPTONICA_DIR . 'includes/class-uptonica-purchase-events.php';
     38require_once UPTONICA_DIR . 'includes/class-uptonica-queue.php';
     39require_once UPTONICA_DIR . 'includes/class-uptonica-forms.php';
     40require_once UPTONICA_DIR . 'includes/class-uptonica-users.php';
     41require_once UPTONICA_DIR . 'includes/class-uptonica-blocks.php';
    3942
    4043// HPOS and the block checkout: everything here reads orders through the
    … …  
    5962                Uptonica_Admin::init();
    6063                Uptonica_Connection::init();
     64                Uptonica_Site_Tag::init();
     65                Uptonica_Forms::init();
     66                Uptonica_Users::init();
     67                Uptonica_Blocks::init();
    6168
    62                 if ( ! class_exists( 'WooCommerce' ) ) {
     69                // What only a store has: its webhooks to keep alive and its purchases.
     70                if ( ! Uptonica_Settings::has_woocommerce() ) {
    6371                        return;
    6472                }
    6573
    66                 Uptonica_Site_Tag::init();
    6774                Uptonica_Webhooks::init();
    6875                Uptonica_Purchase_Events::init();
Note: See TracChangeset for help on using the changeset viewer.