Plugin Directory

Changeset 3262683


Ignore:
Timestamp:
03/27/2025 09:40:02 AM (12 months ago)
Author:
writetextai
Message:

release 2.0.4 for woocommerce compatibility

Location:
writetext-ai
Files:
225 added
13 edited

Legend:

Unmodified
Added
Removed
  • writetext-ai/trunk/CHANGELOG.md

    r3261517 r3262683  
    99The format is based on [Keep a Changelog](http://keepachangelog.com/)
    1010and this project adheres to [Semantic Versioning](http://semver.org/).
     11
     12## [2.0.4] - 2025-03-27
     13
     14### Changed
     15
     16- WooCommerce marketplace compatibility.
    1117
    1218## [2.0.3] - 2025-03-25
  • writetext-ai/trunk/assets/js/admin-common.js

    r3261517 r3262683  
    22/* jshint -W117 */
    33
    4 console.log('WriteText.ai - Version: [2.0.3] - 2025-03-25 - 1');
     4console.log('WriteText.ai - Version: [2.0.4] - 2025-03-27 - 5');
    55
    66jQuery( document ).ready( function( $ ){
  • writetext-ai/trunk/includes/class-wtai-api-services.php

    r3261517 r3262683  
    574574                                $generated_texts[ $product_id ]['generate_date'] = sprintf(
    575575                                    /* translators: %1$s: date  %2$s time */
    576                                     __( '%1$s at %2$s' ),
     576                                    __( '%1$s at %2$s', 'writetext-ai' ),
    577577                                    date_i18n( get_option( 'date_format' ), $time ),
    578578                                    date_i18n( get_option( 'time_format' ), $time )
     
    984984
    985985        $token = $this->get_web_token();
     986
    986987        if ( ! $token ) {
    987988            return ( $global_style_and_tones && isset( $global_style_and_tones[ $api_type ] ) ) ? $global_style_and_tones[ $api_type ] : array();
     
    10711072
    10721073                    $content = $this->get_data_via_api( array(), $settings, $headers, 'GET' );
     1074
     1075                    $is_doing_installation = defined( 'WTAI_DOING_INSTALLATION' ) && WTAI_DOING_INSTALLATION;
    10731076
    10741077                    if ( 200 === intval( $content['http_header'] ) ) {
     
    11111114
    11121115                    if ( isset( $content['headers']['etag'][0] ) ) {
    1113                         unset( $results[ $api_type . '_defaults' ] ); // Unset the temp default values.
     1116                        if ( ! $is_doing_installation ) {
     1117                            unset( $results[ $api_type . '_defaults' ] ); // Unset the temp default values.
     1118                        }
    11141119
    11151120                        $content['headers']['etag'][0] = str_replace( '"', '', $content['headers']['etag'][0] );
     
    23402345                'Authorization' => 'Bearer ' . $wtai_connect_token,
    23412346            );
     2347
    23422348            if ( $settings ) {
    23432349                $content = $this->get_data_via_api( array(), $settings, $headers, 'GET' );
  • writetext-ai/trunk/includes/class-wtai-init.php

    r3250758 r3262683  
    568568            if ( $product_attr ) {
    569569                foreach ( $product_attr as $attribute_id => $attr ) {
    570                     $name = $attr->get_name();
    571                     $id   = sanitize_title( $name );
    572                     if ( ! str_contains( $name, 'pa_' ) ) {
    573                         $custom_pa[ $product_id ][ $id ] = $name;
     570                    if ( is_object( $attr ) && method_exists( $attr, 'get_name' ) ) {
     571                        $name = $attr->get_name();
     572                        $id   = sanitize_title( $name );
     573                        if ( ! str_contains( $name, 'pa_' ) ) {
     574                            $custom_pa[ $product_id ][ $id ] = $name;
     575                        }
    574576                    }
    575577                }
     
    722724            }
    723725
    724             $lists          = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), $force_check_type );
     726            $lists = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), $force_check_type );
     727
    725728            $product_values = apply_filters( 'wtai_global_settings', 'wtai_installation_' . strtolower( $type ) );
    726729            if ( $form && 'tones' === $type ) {
     
    744747                    unset( $lists[ ucfirst( $type ) . '_defaults' ] );
    745748                }
     749            } elseif ( isset( $lists[ ucfirst( $type ) . '_defaults' ] ) ) {
     750                    unset( $lists[ ucfirst( $type ) . '_defaults' ] );
    746751            }
    747752
     
    975980                continue;
    976981            }
    977             $lists          = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), '' );
     982            $lists = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), '' );
     983
     984            if ( isset( $lists[ ucfirst( $type ) . '_defaults' ] ) ) {
     985                unset( $lists[ ucfirst( $type ) . '_defaults' ] );
     986            }
     987
    978988            $product_values = apply_filters( 'wtai_global_settings', 'wtai_installation_' . strtolower( $type ) );
    979989            $html          .= '<div class="wtai-product-wrap wtai-product-all-trigger wtai-product-' . $type . '-wrap">';
     
    10721082                continue;
    10731083            }
    1074             $lists          = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), '' );
     1084            $lists = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), '' );
     1085
     1086            if ( isset( $lists[ ucfirst( $type ) . '_defaults' ] ) ) {
     1087                unset( $lists[ ucfirst( $type ) . '_defaults' ] );
     1088            }
     1089
    10751090            $product_values = apply_filters( 'wtai_global_settings', 'wtai_installation_' . strtolower( $type ) );
    10761091            $html          .= '<div class="wtai-product-wrap wtai-product-' . $type . '-wrap">';
     
    11641179                continue;
    11651180            }
    1166             $lists          = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), '' );
     1181            $lists = apply_filters( 'wtai_generate_text_filters', array(), ucfirst( $type ), '' );
     1182
     1183            if ( isset( $lists[ ucfirst( $type ) . '_defaults' ] ) ) {
     1184                unset( $lists[ ucfirst( $type ) . '_defaults' ] );
     1185            }
     1186
    11671187            $product_values = apply_filters( 'wtai_global_settings', 'wtai_installation_' . strtolower( $type ) );
    11681188            if ( 'form_audience' === $form ) {
  • writetext-ai/trunk/includes/class-wtai-installation.php

    r3250758 r3262683  
    280280            echo wp_json_encode(
    281281                array(
    282                     'step'    => $step,
    283                     'status'  => $status,
    284                     'message' => $message,
    285                     'source'  => $source,
     282                    'step'    => intval( $step ),
     283                    'status'  => intval( $status ),
     284                    'message' => esc_html( $message ),
     285                    'source'  => esc_html( $source ),
    286286                )
    287287            );
     
    372372            );
    373373
    374             $skin     = new WP_Ajax_Upgrader_Skin( array( 'api' => $api ) );
    375             $upgrader = new Plugin_Upgrader( $skin );
    376             $install  = $upgrader->install( $api->download_link, array( 'clear_update_cache' => true ) );
     374            // Add checking if download link is valid.
     375            $download_link = esc_url_raw( $api->download_link );
     376
     377            if ( current_user_can( 'install_plugins' ) && filter_var( $download_link, FILTER_VALIDATE_URL ) ) {
     378                $skin     = new WP_Ajax_Upgrader_Skin( array( 'api' => $api ) );
     379                $upgrader = new Plugin_Upgrader( $skin ); // nosemgrep: audit.php.wp.security.arbitrary-plugin-install // Secuity woo check.
     380                $install  = $upgrader->install( $download_link, array( 'clear_update_cache' => true ) );
     381
     382                if ( is_wp_error( $install ) ) {
     383                    $return = false;
     384                }
     385            } else {
     386                $install = false;
     387            }
    377388
    378389            if ( true !== $install ) {
  • writetext-ai/trunk/includes/class-wtai-product-category-list-table.php

    r3261517 r3262683  
    543543                    $t_time = sprintf(
    544544                        /* translators: %1$s: date  %2$s time */
    545                         __( '%1$s at %2$s' ),
     545                        __( '%1$s at %2$s', 'writetext-ai' ),
    546546                        date_i18n( get_option( 'date_format' ), $item_value ),
    547547                        date_i18n( get_option( 'time_format' ), $item_value )
  • writetext-ai/trunk/includes/class-wtai-product-category.php

    r3261517 r3262683  
    13711371
    13721372                if ( $selected_types && is_array( $selected_types ) ) {
    1373                     $selected_types = array_filter( $selected_types );
     1373                    $selected_types = wtai_filter_empty_values( $selected_types );
    13741374                }
    13751375
     
    14961496                    }
    14971497
    1498                     $alt_image_error_ids = is_array( $alt_image_error_ids ) ? array_filter( $alt_image_error_ids ) : array();
     1498                    $alt_image_error_ids = is_array( $alt_image_error_ids ) ? wtai_filter_empty_values( $alt_image_error_ids ) : array();
    14991499
    15001500                    if ( $error_images || $alt_image_error_ids ) {
     
    16901690                        if ( isset( $_POST['tones'] ) ) {
    16911691                            $values['tones'] = ( false !== strpos( sanitize_text_field( wp_unslash( $_POST['tones'] ) ), ',' ) ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['tones'] ) ) ) : array( sanitize_text_field( wp_unslash( $_POST['tones'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification
    1692                             $values['tones'] = array_filter( $values['tones'] );
     1692                            $values['tones'] = wtai_filter_empty_values( $values['tones'] );
    16931693                        } else {
    16941694                            $values['tones'] = apply_filters( 'wtai_global_settings', 'wtai_installation_tones' );
     
    18061806                        if ( isset( $_POST['altimageserror'] ) ) {
    18071807                            $error_alt_images = ( false !== strpos( sanitize_text_field( wp_unslash( $_POST['altimageserror'] ) ), ',' ) ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['altimageserror'] ) ) ) : array( sanitize_text_field( wp_unslash( $_POST['altimageserror'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification
    1808                             $error_alt_images = array_filter( $error_alt_images );
     1808                            $error_alt_images = wtai_filter_empty_values( $error_alt_images );
    18091809
    18101810                            if ( $error_alt_images ) {
     
    18691869                                $ko_data_intents = isset( $_POST['ko_intents'] ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['ko_intents'] ) ) ) : array(); // phpcs:ignore WordPress.Security.NonceVerification
    18701870
    1871                                 $ko_data_intents = array_filter( $ko_data_intents );
     1871                                $ko_data_intents = wtai_filter_empty_values( $ko_data_intents );
    18721872                                if ( ! $ko_data_intents ) {
    18731873                                    $ko_data_intents = WTAI_DEFAULT_SEARCH_INTENT;
  • writetext-ai/trunk/includes/class-wtai-product-dashboard.php

    r3261517 r3262683  
    740740        }
    741741
    742         if ( defined( 'WTAI_CREDIT_ACCOUNT_DETAILS' ) && WTAI_CREDIT_ACCOUNT_DETAILS['not_accepted_terms'] ) {
     742        if ( defined( 'WTAI_CREDIT_ACCOUNT_DETAILS' ) && isset( WTAI_CREDIT_ACCOUNT_DETAILS['not_accepted_terms'] ) && WTAI_CREDIT_ACCOUNT_DETAILS['not_accepted_terms'] ) {
    743743            ?>
    744744            <style type="text/css">
     
    26342634
    26352635                if ( $selected_types ) {
    2636                     $selected_types = array_filter( $selected_types );
    2637                 }
    2638 
    2639                 $selected_image_ids = array_filter( $selected_image_ids );
     2636                    $selected_types = wtai_filter_empty_values( $selected_types );
     2637                }
     2638
     2639                $selected_image_ids = wtai_filter_empty_values( $selected_image_ids );
    26402640
    26412641                if ( $selected_image_ids ) {
     
    32533253
    32543254                $tones = isset( $_POST['wtai_installation_tones'] ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['wtai_installation_tones'] ) ) ) : array(); // phpcs:ignore WordPress.Security.NonceVerification
    3255                 $tones = array_filter( $tones );
     3255                $tones = wtai_filter_empty_values( $tones );
    32563256
    32573257                wtai_update_user_meta( $current_user_id, 'wtai_tones_options_user_preference', $tones );
     
    36793679
    36803680                    if ( $product_attributes ) {
    3681                         $product_attributes = array_filter( $product_attributes );
     3681                        $product_attributes = wtai_filter_empty_values( $product_attributes );
    36823682                        $product_attributes = array_values( $product_attributes );
    36833683                    }
     
    49914991                        if ( isset( $_POST['tones'] ) ) {
    49924992                            $values['tones'] = ( false !== strpos( sanitize_text_field( wp_unslash( $_POST['tones'] ) ), ',' ) ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['tones'] ) ) ) : array( sanitize_text_field( wp_unslash( $_POST['tones'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification
    4993                             $values['tones'] = array_filter( $values['tones'] );
     4993                            $values['tones'] = wtai_filter_empty_values( $values['tones'] );
    49944994                        } else {
    49954995                            $values['tones'] = apply_filters( 'wtai_global_settings', 'wtai_installation_tones' );
     
    51865186                            if ( isset( $_POST['ko_intents'] ) ) {
    51875187                                $ko_data_intents = isset( $_POST['ko_intents'] ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['ko_intents'] ) ) ) : array(); // phpcs:ignore WordPress.Security.NonceVerification
    5188                                 $ko_data_intents = array_filter( $ko_data_intents );
     5188                                $ko_data_intents = wtai_filter_empty_values( $ko_data_intents );
    51895189                                if ( ! $ko_data_intents ) {
    51905190                                    $ko_data_intents = WTAI_DEFAULT_SEARCH_INTENT;
     
    52415241                            if ( isset( $_POST['bulk_search_intent'] ) ) {
    52425242                                $ko_data_intents = isset( $_POST['bulk_search_intent'] ) ? explode( ',', sanitize_text_field( wp_unslash( $_POST['bulk_search_intent'] ) ) ) : array(); // phpcs:ignore WordPress.Security.NonceVerification
    5243                                 $ko_data_intents = array_filter( $ko_data_intents );
     5243                                $ko_data_intents = wtai_filter_empty_values( $ko_data_intents );
    52445244                                if ( ! $ko_data_intents ) {
    52455245                                    $ko_data_intents = WTAI_DEFAULT_SEARCH_INTENT;
  • writetext-ai/trunk/includes/class-wtai-product-list-table.php

    r3261517 r3262683  
    668668            // Sanitize and explode the parameter to get an array of product IDs.
    669669            $bulk_product_ids = explode( ',', sanitize_text_field( wp_unslash( $_GET['wtai_bulk_product_ids'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification
    670             $bulk_product_ids = array_filter( $bulk_product_ids );
     670            $bulk_product_ids = wtai_filter_empty_values( $bulk_product_ids );
    671671
    672672            // Check if 'post__in' is already set in $args.
  • writetext-ai/trunk/includes/functions.php

    r3261517 r3262683  
    81678167    $product_post->reset();
    81688168}
     8169
     8170/**
     8171 * Filter empty values from an array.
     8172 *
     8173 * @param array $filtered_array Filtered array.
     8174 */
     8175function wtai_filter_empty_values( $filtered_array ) {
     8176    return array_filter(
     8177        $filtered_array,
     8178        function ( $array_value ) {
     8179            return ! empty( $array_value );
     8180        }
     8181    );
     8182}
     8183
  • writetext-ai/trunk/readme.txt

    r3261517 r3262683  
    55Requires at least: 6.0
    66Tested up to: 6.7
    7 Stable tag: 2.0.3
     7Stable tag: 2.0.4
    88Requires PHP: 7.4
    99License: GPLv3 or later
     
    165165
    166166== Changelog ==
     167
     168= 2.0.4 2025-03-27 =
     169
     170* Update - WooCommerce marketplace compatibility.
    167171
    168172= 2.0.3 2025-03-25 =
     
    409413== Upgrade Notice ==
    410414
    411 = 2.0.3 =
     415= 2.0.4 =
    412416
    413417Please upgrade, to ensure all plugin features works as expected.
  • writetext-ai/trunk/templates/admin/install.php

    r3250758 r3262683  
    235235                    <?php
    236236                    $global_rule_fields = apply_filters( 'wtai_global_rule_fields', array() );
    237                     $min_output_words   = $global_rule_fields['minOutputWords'];
    238                     $max_output_words   = $global_rule_fields['maxOutputWords'];
     237                    $min_output_words   = isset( $global_rule_fields['minOutputWords'] ) ? $global_rule_fields['minOutputWords'] : 0;
     238                    $max_output_words   = isset( $global_rule_fields['maxOutputWords'] ) ? $global_rule_fields['maxOutputWords'] : 0;
    239239                    ?>
    240240                    <div class="wtai-product-length-main-wrap" >
     
    250250                                    <span><?php echo wp_kses_post( __( 'Min', 'writetext-ai' ) ); ?></span>
    251251                                    <span class="wtai-input-group">
    252                                         <input type="number" id="wtai-installation-product-description-min" name="wtai_installation_product_description_min" class="wtai-specs-input wtai-min-text" value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_description_min'] ) ); ?>" min="<?php echo esc_attr( $global_rule_fields['minOutputWords'] ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['product_description_min'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>"/>
     252                                        <input type="number" id="wtai-installation-product-description-min" name="wtai_installation_product_description_min" class="wtai-specs-input wtai-min-text" value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_description_min'] ) ); ?>" min="<?php echo esc_attr( $min_output_words ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['product_description_min'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>"/>
    253253                                        <span class="wtai-plus-minus-wrapper">
    254254                                            <span class="dashicons dashicons-plus wtai-txt-plus"></span>
     
    260260                                    <span class="wtai-text-input-label"><?php echo wp_kses_post( __( 'Max', 'writetext-ai' ) ); ?></span>
    261261                                    <span class="wtai-input-group">
    262                                         <input type="number" class="wtai-specs-input wtai-max-text" id="wtai-installation-product-description-max" name="wtai_installation_product_description_max"   value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_description_max'] ) ); ?>" min="<?php echo esc_attr( $global_rule_fields['minOutputWords'] ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['product_description_max'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>">
     262                                        <input type="number" class="wtai-specs-input wtai-max-text" id="wtai-installation-product-description-max" name="wtai_installation_product_description_max"   value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_description_max'] ) ); ?>" min="<?php echo esc_attr( $min_output_words ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['product_description_max'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>">
    263263                                        <span class="wtai-plus-minus-wrapper">
    264264                                            <span class="dashicons dashicons-plus wtai-txt-plus"></span>
     
    278278                                    <span><?php echo wp_kses_post( __( 'Min', 'writetext-ai' ) ); ?></span>
    279279                                    <span class="wtai-input-group">
    280                                         <input type="number"  id="wtai-installation-product-excerpt-min" class="wtai-specs-input wtai-min-text" name="wtai_installation_product_excerpt_min" value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_excerpt_min'] ) ); ?>" min="<?php echo esc_attr( $global_rule_fields['minOutputWords'] ); ?>" data-original-value="<?php echo esc_attr( $field_text_fields['product_excerpt_min'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
     280                                        <input type="number"  id="wtai-installation-product-excerpt-min" class="wtai-specs-input wtai-min-text" name="wtai_installation_product_excerpt_min" value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_excerpt_min'] ) ); ?>" min="<?php echo esc_attr( $min_output_words ); ?>" data-original-value="<?php echo esc_attr( $field_text_fields['product_excerpt_min'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
    281281                                        <span class="wtai-plus-minus-wrapper">
    282282                                            <span class="dashicons dashicons-plus wtai-txt-plus"></span>
     
    288288                                    <span class="wtai-text-input-label"><?php echo wp_kses_post( __( 'Max', 'writetext-ai' ) ); ?></span>
    289289                                    <span class="wtai-input-group">
    290                                         <input type="number" class="wtai-specs-input wtai-max-text" id="wtai-installation-product-excerpt-max" name="wtai_installation_product_excerpt_max" value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_excerpt_max'] ) ); ?>" min="<?php echo esc_attr( $global_rule_fields['minOutputWords'] ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['product_excerpt_max'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
     290                                        <input type="number" class="wtai-specs-input wtai-max-text" id="wtai-installation-product-excerpt-max" name="wtai_installation_product_excerpt_max" value="<?php echo esc_attr( wp_unslash( $field_text_fields['product_excerpt_max'] ) ); ?>" min="<?php echo esc_attr( $min_output_words ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['product_excerpt_max'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
    291291                                        <span class="wtai-plus-minus-wrapper">
    292292                                            <span class="dashicons dashicons-plus wtai-txt-plus"></span>
     
    306306                                    <span><?php echo wp_kses_post( __( 'Min', 'writetext-ai' ) ); ?></span>
    307307                                    <span class="wtai-input-group">
    308                                         <input type="number"  id="wtai-installation-category-description-min" class="wtai-specs-input wtai-min-text" name="wtai_installation_category_description_min" value="<?php echo esc_attr( wp_unslash( $field_text_fields['category_description_min'] ) ); ?>" min="<?php echo esc_attr( $global_rule_fields['minOutputWords'] ); ?>" data-original-value="<?php echo esc_attr( $field_text_fields['category_description_min'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
     308                                        <input type="number"  id="wtai-installation-category-description-min" class="wtai-specs-input wtai-min-text" name="wtai_installation_category_description_min" value="<?php echo esc_attr( wp_unslash( $field_text_fields['category_description_min'] ) ); ?>" min="<?php echo esc_attr( $min_output_words ); ?>" data-original-value="<?php echo esc_attr( $field_text_fields['category_description_min'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
    309309                                        <span class="wtai-plus-minus-wrapper">
    310310                                            <span class="dashicons dashicons-plus wtai-txt-plus"></span>
     
    316316                                    <span class="wtai-text-input-label"><?php echo wp_kses_post( __( 'Max', 'writetext-ai' ) ); ?></span>
    317317                                    <span class="wtai-input-group">
    318                                         <input type="number" class="wtai-specs-input wtai-max-text" id="wtai-installation-category-description-max" name="wtai_installation_category_description_max" value="<?php echo esc_attr( wp_unslash( $field_text_fields['category_description_max'] ) ); ?>" min="<?php echo esc_attr( $global_rule_fields['minOutputWords'] ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['category_description_max'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
     318                                        <input type="number" class="wtai-specs-input wtai-max-text" id="wtai-installation-category-description-max" name="wtai_installation_category_description_max" value="<?php echo esc_attr( wp_unslash( $field_text_fields['category_description_max'] ) ); ?>" min="<?php echo esc_attr( $min_output_words ); ?>"  data-original-value="<?php echo esc_attr( $field_text_fields['category_description_max'] ); ?>" data-mintext="<?php echo esc_attr( $min_output_words ); ?>" data-maxtext="<?php echo esc_attr( $max_output_words ); ?>" />
    319319                                        <span class="wtai-plus-minus-wrapper">
    320320                                            <span class="dashicons dashicons-plus wtai-txt-plus"></span>
  • writetext-ai/trunk/writetext-ai.php

    r3261517 r3262683  
    44 * Plugin URI: https://writetext.ai/woocommerce
    55 * Description: Let AI automatically generate product descriptions and other content from your product data.
    6  * Version: 2.0.3
     6 * Version: 2.0.4
    77 * Author:  1902 Software
    88 * Author URI: https://writetext.ai/
     
    5252
    5353    if ( ! defined( 'WTAI_VERSION' ) ) {
    54         define( 'WTAI_VERSION', '2.0.3' );
     54        define( 'WTAI_VERSION', '2.0.4' );
    5555    }
    5656
     
    407407                'SELECT user_id FROM %1s
    408408                WHERE meta_key LIKE %s
     409                    OR meta_key LIKE %s
    409410                    OR meta_key LIKE %s
    410411                    OR meta_key LIKE %s
     
    472473                'wtai_product_list_per_page%',
    473474                'wtai_product_bulk_generate_user_preference%',
     475                'wtai_keyword_search_intents%',
    474476            )
    475477        ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared.
     
    507509            wtai_update_user_meta( $user->user_id, 'wtai_product_list_per_page', '' );
    508510            wtai_update_user_meta( $user->user_id, 'wtai_product_bulk_generate_user_preference', '' );
     511            wtai_update_user_meta( $user->user_id, 'wtai_keyword_search_intents', '' );
    509512
    510513            // Reset popup blocker dismiss option.
     
    11911194        $seo = get_option( 'wtai_installation_source', '' );
    11921195
     1196        if ( '' === $seo ) {
     1197            return array(
     1198                'source'  => '',
     1199                'version' => '',
     1200            );
     1201        }
     1202
    11931203        $plugin_lists    = wtai_get_list_of_seoplugin();
    1194         $seo_plugin_data = $plugin_lists[ $seo ];
    1195         $plugin_uri      = $seo_plugin_data['plugin_uri'];
     1204        $seo_plugin_data = isset( $plugin_lists[ $seo ] ) ? $plugin_lists[ $seo ] : '';
     1205        $plugin_uri      = isset( $seo_plugin_data['plugin_uri'] ) ? $seo_plugin_data['plugin_uri'] : '';
     1206
     1207        if ( '' === $plugin_uri ) {
     1208            return array(
     1209                'source'  => '',
     1210                'version' => '',
     1211            );
     1212        }
    11961213
    11971214        if ( ! function_exists( 'get_plugin_data' ) ) {
Note: See TracChangeset for help on using the changeset viewer.