Plugin Directory

Changeset 3486909


Ignore:
Timestamp:
03/20/2026 02:38:20 AM (8 days ago)
Author:
wpclever
Message:

Update 3.1.4

Location:
wpc-product-options
Files:
110 added
9 edited

Legend:

Unmodified
Added
Removed
  • wpc-product-options/trunk/includes/class-backend.php

    r3467249 r3486909  
    2525            add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
    2626            add_action( 'admin_init', [ $this, 'register_settings' ] );
     27            add_filter( 'pre_update_option', [ $this, 'last_saved' ], 10, 2 );
    2728            add_action( 'admin_menu', [ $this, 'admin_menu' ] );
    2829            add_filter( 'plugin_action_links', [ $this, 'action_links' ], 10, 2 );
     
    233234                    'sanitize_callback' => [ $this, 'sanitize_array' ],
    234235            ] );
     236        }
     237
     238        function last_saved( $value, $option ) {
     239            if ( $option == 'wpcpo_settings' || $option == 'wpcpo_localization' ) {
     240                $value['_last_saved']    = current_time( 'timestamp' );
     241                $value['_last_saved_by'] = get_current_user_id();
     242            }
     243
     244            return $value;
    235245        }
    236246
     
    367377                                <tr class="submit">
    368378                                    <th colspan="2">
    369                                         <?php settings_fields( 'wpcpo_settings' ); ?><?php submit_button(); ?>
     379                                        <div class="wpclever_submit">
     380                                            <?php
     381                                            settings_fields( 'wpcpo_settings' );
     382                                            submit_button( '', 'primary', 'submit', false );
     383
     384                                            if ( function_exists( 'wpc_last_saved' ) ) {
     385                                                wpc_last_saved( self::get_settings() );
     386                                            }
     387                                            ?>
     388                                        </div>
    370389                                    </th>
    371390                                </tr>
     
    413432                                </tr>
    414433                                <tr>
     434                                    <th><?php esc_html_e( 'Select an option...', 'wpc-product-options' ); ?></th>
     435                                    <td>
     436                                        <label>
     437                                            <input type="text" class="regular-text"
     438                                                   name="wpcpo_localization[select_an_option]"
     439                                                   value="<?php echo esc_attr( self::localization( 'select_an_option' ) ); ?>"
     440                                                   placeholder="<?php esc_attr_e( 'Select an option...', 'wpc-product-options' ); ?>"/>
     441                                        </label>
     442                                    </td>
     443                                </tr>
     444                                <tr>
    415445                                    <th><?php esc_html_e( 'Clear all', 'wpc-product-options' ); ?></th>
    416446                                    <td>
     
    424454                                <tr class="submit">
    425455                                    <th colspan="2">
    426                                         <?php settings_fields( 'wpcpo_localization' ); ?><?php submit_button(); ?>
     456                                        <div class="wpclever_submit">
     457                                            <?php
     458                                            settings_fields( 'wpcpo_localization' );
     459                                            submit_button( '', 'primary', 'submit', false );
     460
     461                                            if ( function_exists( 'wpc_last_saved' ) ) {
     462                                                wpc_last_saved( get_option( 'wpcpo_localization', [] ) );
     463                                            }
     464                                            ?>
     465                                        </div>
    427466                                    </th>
    428467                                </tr>
  • wpc-product-options/trunk/includes/dashboard/css/dashboard.css

    r3401724 r3486909  
    287287}
    288288
     289.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_submit {
     290  display: flex;
     291  align-items: center;
     292}
     293
     294.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpc-last-saved {
     295  font-weight: 400;
     296  font-size: 12px;
     297  color: #999;
     298  margin-left: 10px;
     299  display: flex;
     300  align-items: center;
     301}
     302
     303.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpc-last-saved .dashicons {
     304  font-size: 15px;
     305  width: 15px;
     306  height: 15px;
     307  margin-right: 5px;
     308  color: #22c55e;
     309}
     310
    289311.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export {
    290312  position: absolute;
     
    293315  transform: translateY(-50%);
    294316  font-weight: 400;
     317}
     318
     319#wpclever_export .wpclever_export_data {
     320  width: 100%;
     321  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
     322  font-size: 12.5px;
     323  line-height: 20px;
     324  padding: 0 12px;
     325  background-image: repeating-linear-gradient(to bottom, #ffffff 0px, #ffffff 20px, #fafafa 20px, #fafafa 40px);
     326  background-attachment: local;
     327  resize: vertical;
     328  box-sizing: border-box;
     329  outline: none;
    295330}
    296331
     
    462497  border-left: none;
    463498  border-right: 4px solid #23282d;
     499}
     500
     501body.rtl .wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export {
     502  left: 20px;
     503  right: auto;
    464504}
    465505
  • wpc-product-options/trunk/includes/dashboard/css/dashboard.css.map

    r3401724 r3486909  
    1 {"version":3,"sourceRoot":"","sources":["dashboard.scss"],"names":[],"mappings":";AAAA;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAEA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAEA;EACE;IACE;IACA;IACA;IACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAEA;EACE;;;AAGF;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA","file":"dashboard.css"}
     1{"version":3,"sourceRoot":"","sources":["dashboard.scss"],"names":[],"mappings":";AAAA;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAEA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAEA;EACE;IACE;IACA;IACA;IACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAOA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAEA;EACE;;;AAGF;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA","file":"dashboard.css"}
  • wpc-product-options/trunk/includes/dashboard/css/dashboard.scss

    r3401724 r3486909  
    299299}
    300300
     301.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_submit {
     302  display: flex;
     303  align-items: center;
     304}
     305
     306.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpc-last-saved {
     307  font-weight: 400;
     308  font-size: 12px;
     309  color: #999;
     310  margin-left: 10px;
     311  display: flex;
     312  align-items: center;
     313}
     314
     315.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpc-last-saved .dashicons {
     316  font-size: 15px;
     317  width: 15px;
     318  height: 15px;
     319  margin-right: 5px;
     320  color: #22c55e;
     321}
     322
    301323.wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export {
    302324  position: absolute;
     
    305327  transform: translateY(-50%);
    306328  font-weight: 400;
     329}
     330
     331#wpclever_export .wpclever_export_data {
     332  width: 100%;
     333  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
     334  font-size: 12.5px;
     335  line-height: 20px;
     336  padding: 0 12px;
     337  background-image: repeating-linear-gradient(
     338                  to bottom,
     339                  #ffffff 0px,
     340                  #ffffff 20px,
     341                  #fafafa 20px,
     342                  #fafafa 40px
     343  );
     344  background-attachment: local;
     345  resize: vertical;
     346  box-sizing: border-box;
     347  outline: none;
    307348}
    308349
     
    478519  border-left: none;
    479520  border-right: 4px solid #23282d;
     521}
     522
     523body.rtl .wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export {
     524  left: 20px;
     525  right: auto;
    480526}
    481527
  • wpc-product-options/trunk/includes/dashboard/wpc-dashboard.php

    r3401724 r3486909  
    11<?php
    22defined( 'ABSPATH' ) || exit;
    3 
    4 if ( ! class_exists( 'WPCleverMenu' ) ) {
    5     class WPCleverMenu {
    6         function __construct() {
    7             // do nothing, moved to WPCleverDashboard
    8         }
    9     }
    10 
    11     new WPCleverMenu();
    12 }
    133
    144if ( ! class_exists( 'WPCleverDashboard' ) ) {
     
    232222
    233223            if ( ! empty( $key ) && ( $settings = get_option( $key ) ) ) {
     224                unset( $settings['_last_saved'] );
     225                unset( $settings['_last_saved_by'] );
     226
    234227                echo '<textarea class="wpclever_export_data" id="wpclever_export_data" style="width: 100%; height: 200px; margin-bottom: 10px;" data-key="' . esc_attr( $key ) . '">' . esc_textarea( wp_json_encode( $settings, JSON_PRETTY_PRINT ) ) . '</textarea>';
    235228                echo '<div style="display: flex; align-items: center"><button class="button button-primary wpclever_import" data-key="' . esc_attr( $key ) . '">Update</button>';
     
    265258    new WPCleverDashboard();
    266259}
     260
     261if ( ! function_exists( 'wpc_last_saved' ) ) {
     262    function wpc_last_saved( $settings ) {
     263        $last_saved = isset( $settings['_last_saved'] ) ? (int) $settings['_last_saved'] : 0;
     264
     265        if ( $last_saved ) {
     266            $time_diff = human_time_diff( $last_saved, current_time( 'timestamp' ) );
     267            $time_full = date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $last_saved );
     268
     269            // Who saved it
     270            $saved_by_id   = isset( $settings['_last_saved_by'] ) ? (int) $settings['_last_saved_by'] : 0;
     271            $saved_by_name = '';
     272
     273            if ( $saved_by_id ) {
     274                $user = get_userdata( $saved_by_id );
     275
     276                if ( $user ) {
     277                    $saved_by_name = $user->display_name;
     278                }
     279            }
     280
     281            $by_text = $saved_by_name ? ' ' . sprintf( 'by %s', esc_html( $saved_by_name ) ) : '';
     282
     283            echo '<span class="wpc-last-saved" title="' . esc_attr( $time_full ) . '"><span class="dashicons dashicons-saved"></span> '
     284                 . sprintf(
     285                         'Saved %1$s ago',
     286                         esc_html( $time_diff )
     287                 )
     288                 . $by_text
     289                 . '</span>';
     290        }
     291    }
     292}
  • wpc-product-options/trunk/languages/wpc-product-options.pot

    r3476046 r3486909  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WPC Product Options for WooCommerce 3.1.3\n"
     5"Project-Id-Version: WPC Product Options for WooCommerce 3.1.4\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpc-product-options\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-03-06T03:32:59+00:00\n"
     12"POT-Creation-Date: 2026-03-20T02:35:33+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    4040msgstr ""
    4141
    42 #: includes/class-backend.php:88
     42#: includes/class-backend.php:89
    4343#: includes/templates/fields/color-picker.php:14
    4444#: includes/templates/fields/date-picker.php:14
     
    5454msgstr ""
    5555
    56 #: includes/class-backend.php:89
     56#: includes/class-backend.php:90
    5757msgid "Description"
    5858msgstr ""
    5959
    60 #: includes/class-backend.php:90
     60#: includes/class-backend.php:91
    6161msgid "Summary"
    6262msgstr ""
    6363
    64 #: includes/class-backend.php:91
     64#: includes/class-backend.php:92
    6565msgid "Date"
    6666msgstr ""
    6767
    68 #: includes/class-backend.php:105
    69 #: includes/class-backend.php:132
     68#: includes/class-backend.php:106
     69#: includes/class-backend.php:133
    7070#: includes/templates/panel.php:9
    7171msgid "Fields"
    7272msgstr ""
    7373
    74 #: includes/class-backend.php:106
     74#: includes/class-backend.php:107
    7575#: includes/templates/configuration.php:10
    7676msgid "Apply"
    7777msgstr ""
    7878
    79 #: includes/class-backend.php:115
    80 #: includes/class-backend.php:238
    81 #: includes/class-backend.php:285
    82 #: includes/class-backend.php:478
     79#: includes/class-backend.php:116
     80#: includes/class-backend.php:248
     81#: includes/class-backend.php:295
     82#: includes/class-backend.php:517
    8383msgid "Product Options"
    8484msgstr ""
    8585
    86 #: includes/class-backend.php:127
     86#: includes/class-backend.php:128
    8787msgid "Configuration"
    8888msgstr ""
    8989
    90 #: includes/class-backend.php:238
    91 #: includes/class-backend.php:252
     90#: includes/class-backend.php:248
     91#: includes/class-backend.php:262
    9292msgid "WPC Product Options"
    9393msgstr ""
    9494
    95 #: includes/class-backend.php:252
     95#: includes/class-backend.php:262
    9696msgid "Premium"
    9797msgstr ""
    9898
    9999#. translators: stars
    100 #: includes/class-backend.php:255
     100#: includes/class-backend.php:265
    101101#, php-format
    102102msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating."
    103103msgstr ""
    104104
    105 #: includes/class-backend.php:258
     105#: includes/class-backend.php:268
    106106msgid "Reviews"
    107107msgstr ""
    108108
    109 #: includes/class-backend.php:260
     109#: includes/class-backend.php:270
    110110msgid "Changelog"
    111111msgstr ""
    112112
    113 #: includes/class-backend.php:262
     113#: includes/class-backend.php:272
    114114msgid "Discussion"
    115115msgstr ""
    116116
    117 #: includes/class-backend.php:270
     117#: includes/class-backend.php:280
    118118msgid "Settings updated."
    119119msgstr ""
    120120
    121 #: includes/class-backend.php:277
    122 #: includes/class-backend.php:477
     121#: includes/class-backend.php:287
     122#: includes/class-backend.php:516
    123123msgid "Settings"
    124124msgstr ""
    125125
    126 #: includes/class-backend.php:281
    127 #: includes/class-backend.php:378
     126#: includes/class-backend.php:291
     127#: includes/class-backend.php:397
    128128msgid "Localization"
    129129msgstr ""
    130130
    131 #: includes/class-backend.php:290
    132 #: includes/class-backend.php:479
     131#: includes/class-backend.php:300
     132#: includes/class-backend.php:518
    133133msgid "Premium Version"
    134134msgstr ""
    135135
    136 #: includes/class-backend.php:293
     136#: includes/class-backend.php:303
    137137msgid "Essential Kit"
    138138msgstr ""
    139139
    140 #: includes/class-backend.php:309
     140#: includes/class-backend.php:319
    141141msgid "General"
    142142msgstr ""
    143143
    144 #: includes/class-backend.php:313
     144#: includes/class-backend.php:323
    145145msgid "Position"
    146146msgstr ""
    147147
    148 #: includes/class-backend.php:316
     148#: includes/class-backend.php:326
    149149msgid "Above the add to cart button"
    150150msgstr ""
    151151
    152 #: includes/class-backend.php:317
     152#: includes/class-backend.php:327
    153153msgid "Under the add to cart button"
    154154msgstr ""
    155155
    156 #: includes/class-backend.php:318
     156#: includes/class-backend.php:328
    157157msgid "None (Hide it)"
    158158msgstr ""
    159159
    160 #: includes/class-backend.php:320
     160#: includes/class-backend.php:330
    161161msgid "Choose the position to show product options on a single product page. You can also place the shortcode [wpcpo] inside the add-to-cart form."
    162162msgstr ""
    163163
    164 #: includes/class-backend.php:324
     164#: includes/class-backend.php:334
    165165msgid "Tooltip library"
    166166msgstr ""
    167167
    168 #: includes/class-backend.php:327
     168#: includes/class-backend.php:337
    169169msgid "Hint.css"
    170170msgstr ""
    171171
    172 #: includes/class-backend.php:328
     172#: includes/class-backend.php:338
    173173msgid "Tippy.js"
    174174msgstr ""
    175175
    176 #: includes/class-backend.php:329
     176#: includes/class-backend.php:339
    177177msgid "None (Disable)"
    178178msgstr ""
    179179
    180 #: includes/class-backend.php:338
     180#: includes/class-backend.php:348
    181181msgid "Summary of free options"
    182182msgstr ""
    183183
    184 #: includes/class-backend.php:341
    185184#: includes/class-backend.php:351
    186185#: includes/class-backend.php:361
     186#: includes/class-backend.php:371
    187187msgid "No"
    188188msgstr ""
    189189
    190 #: includes/class-backend.php:342
    191190#: includes/class-backend.php:352
    192191#: includes/class-backend.php:362
     192#: includes/class-backend.php:372
    193193msgid "Yes"
    194194msgstr ""
    195195
    196 #: includes/class-backend.php:344
     196#: includes/class-backend.php:354
    197197msgid "Display free options on the summary."
    198198msgstr ""
    199199
    200 #: includes/class-backend.php:348
     200#: includes/class-backend.php:358
    201201msgid "\"Clear all\" button"
    202202msgstr ""
    203203
    204 #: includes/class-backend.php:354
     204#: includes/class-backend.php:364
    205205msgid "Display the \"Clear all\" button to clear all selected options."
    206206msgstr ""
    207207
    208 #: includes/class-backend.php:358
     208#: includes/class-backend.php:368
    209209msgid "Change URL (Beta)"
    210210msgstr ""
    211211
    212 #: includes/class-backend.php:364
     212#: includes/class-backend.php:374
    213213msgid "Change the product URL based on selected options."
    214214msgstr ""
    215215
    216 #: includes/class-backend.php:380
     216#: includes/class-backend.php:399
    217217msgid "Leave blank to use the default text and its equivalent translation in multiple languages."
    218218msgstr ""
    219219
    220 #: includes/class-backend.php:384
     220#: includes/class-backend.php:403
    221221msgid "Subtotal"
    222222msgstr ""
    223223
    224 #: includes/class-backend.php:389
     224#: includes/class-backend.php:408
    225225#: includes/class-frontend.php:151
    226226msgid "Subtotal:"
    227227msgstr ""
    228228
    229 #: includes/class-backend.php:394
    230 #: includes/class-backend.php:399
     229#: includes/class-backend.php:413
     230#: includes/class-backend.php:418
    231231msgid "Free"
    232232msgstr ""
    233233
    234 #: includes/class-backend.php:404
     234#: includes/class-backend.php:423
    235235msgid "Characters remaining"
    236236msgstr ""
    237237
    238 #: includes/class-backend.php:410
     238#: includes/class-backend.php:429
    239239#: includes/class-frontend.php:152
    240240msgid "characters remaining"
    241241msgstr ""
    242242
    243 #: includes/class-backend.php:415
     243#: includes/class-backend.php:434
     244#: includes/class-backend.php:440
     245#: templates/fields/select.php:20
     246msgid "Select an option..."
     247msgstr ""
     248
     249#: includes/class-backend.php:445
    244250msgid "Clear all"
    245251msgstr ""
    246252
    247 #: includes/class-backend.php:420
     253#: includes/class-backend.php:450
    248254#: includes/class-frontend.php:150
    249255msgid "Clear all options"
    250256msgstr ""
    251257
    252 #: includes/class-backend.php:495
     258#: includes/class-backend.php:534
    253259msgid "Community support"
    254260msgstr ""
    255261
    256 #: includes/class-backend.php:645
     262#: includes/class-backend.php:684
    257263msgctxt "Post Type General Name"
    258264msgid "Product Options"
    259265msgstr ""
    260266
    261 #: includes/class-backend.php:646
     267#: includes/class-backend.php:685
    262268msgctxt "Post Type Singular Name"
    263269msgid "Product Option"
    264270msgstr ""
    265271
    266 #: includes/class-backend.php:647
     272#: includes/class-backend.php:686
    267273msgid "Add New Product Option"
    268274msgstr ""
    269275
    270 #: includes/class-backend.php:648
     276#: includes/class-backend.php:687
    271277msgid "Add New"
    272278msgstr ""
    273279
    274 #: includes/class-backend.php:649
     280#: includes/class-backend.php:688
    275281msgid "Edit Product Option"
    276282msgstr ""
    277283
    278 #: includes/class-backend.php:650
     284#: includes/class-backend.php:689
    279285msgid "Update Product Option"
    280286msgstr ""
    281287
    282 #: includes/class-backend.php:651
     288#: includes/class-backend.php:690
    283289msgid "Search Product Option"
    284290msgstr ""
    285291
    286 #: includes/class-backend.php:655
     292#: includes/class-backend.php:694
    287293msgid "Product Option"
    288294msgstr ""
    289295
    290 #: includes/class-backend.php:748
     296#: includes/class-backend.php:787
    291297msgid "Before wrapper"
    292298msgstr ""
    293299
    294 #: includes/class-backend.php:749
     300#: includes/class-backend.php:788
    295301msgid "After wrapper"
    296302msgstr ""
    297303
    298 #: includes/class-backend.php:750
     304#: includes/class-backend.php:789
    299305msgid "Before options"
    300306msgstr ""
    301307
    302 #: includes/class-backend.php:751
     308#: includes/class-backend.php:790
    303309msgid "After options"
    304310msgstr ""
     
    784790msgid "(%1$s - %2$s)"
    785791msgstr ""
    786 
    787 #: templates/fields/select.php:20
    788 msgid "Select an option..."
    789 msgstr ""
  • wpc-product-options/trunk/readme.txt

    r3476046 r3486909  
    55Requires at least: 4.0
    66Tested up to: 6.9
    7 Version: 3.1.3
    8 Stable tag: 3.1.3
     7Version: 3.1.4
     8Stable tag: 3.1.4
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    9292== Changelog ==
    9393
     94= 3.1.4 =
     95* Fixed: Minor CSS/JS issues in the backend
     96* Updated: Compatible with WP 6.9 & Woo 10.6
     97
    9498= 3.1.3 =
    9599* Fixed: Vulnerability issue reported by Patchstack team
  • wpc-product-options/trunk/templates/fields/select.php

    r3467249 r3486909  
    1818            id="<?php echo esc_attr( $key ); ?>"
    1919            data-title="<?php echo esc_attr( $field['title'] ); ?>" <?php echo esc_attr( ! empty( $field['required'] ) ? 'required' : '' ); ?>>
    20         <option value=""><?php esc_html_e( 'Select an option...', 'wpc-product-options' ); ?></option>
     20        <option value=""><?php echo Wpcpo_Backend::localization( 'select_an_option', esc_html__( 'Select an option...', 'wpc-product-options' ) ); ?></option>
    2121        <?php foreach ( $field['options'] as $option_key => $option ) {
    2222            if ( isset( $option['value'] ) && $option['value'] !== '' ) {
  • wpc-product-options/trunk/wpc-product-options.php

    r3476046 r3486909  
    44Plugin URI: https://wpclever.net/
    55Description: WPC Product Options brings about the power of adjusting prices with highly customizable additional fields for products.
    6 Version: 3.1.3
     6Version: 3.1.4
    77Author: WPClever
    88Author URI: https://wpclever.net
     
    1313Tested up to: 6.9
    1414WC requires at least: 3.0
    15 WC tested up to: 10.5
     15WC tested up to: 10.6
    1616*/
    1717
    18 ! defined( 'WPCPO_VERSION' ) && define( 'WPCPO_VERSION', '3.1.3' );
     18! defined( 'WPCPO_VERSION' ) && define( 'WPCPO_VERSION', '3.1.4' );
    1919! defined( 'WPCPO_LITE' ) && define( 'WPCPO_LITE', __FILE__ );
    2020! defined( 'WPCPO_FILE' ) && define( 'WPCPO_FILE', __FILE__ );
     
    2727! defined( 'WPC_URI' ) && define( 'WPC_URI', WPCPO_URI );
    2828
     29include 'includes/log/wpc-log.php';
    2930include 'includes/dashboard/wpc-dashboard.php';
    3031include 'includes/kit/wpc-kit.php';
Note: See TracChangeset for help on using the changeset viewer.