Plugin Directory

Changeset 3482866


Ignore:
Timestamp:
03/15/2026 04:03:22 AM (13 days ago)
Author:
wpclever
Message:

Update 1.4.2

Location:
wpc-smart-linked-products
Files:
34 added
7 edited

Legend:

Unmodified
Added
Removed
  • wpc-smart-linked-products/trunk/includes/dashboard/css/dashboard.css

    r3403138 r3482866  
    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-smart-linked-products/trunk/includes/dashboard/css/dashboard.css.map

    r3403138 r3482866  
    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-smart-linked-products/trunk/includes/dashboard/css/dashboard.scss

    r3403138 r3482866  
    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-smart-linked-products/trunk/includes/dashboard/wpc-dashboard.php

    r3403138 r3482866  
    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-smart-linked-products/trunk/languages/wpc-smart-linked-products.pot

    r3403138 r3482866  
    1 # Copyright (C) 2025 WPClever
     1# Copyright (C) 2026 WPClever
    22# This file is distributed under the GPLv2 or later.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WPC Smart Linked Products - Upsells & Cross-sells for WooCommerce 1.4.1\n"
     5"Project-Id-Version: WPC Smart Linked Products - Upsells & Cross-sells for WooCommerce 1.4.2\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpc-smart-linked-products\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: 2025-11-26T08:39:43+00:00\n"
     12"POT-Creation-Date: 2026-03-15T04:01:46+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 #: wpc-smart-linked-products.php:350
    43 #: wpc-smart-linked-products.php:354
    4442#: wpc-smart-linked-products.php:369
     43#: wpc-smart-linked-products.php:373
     44#: wpc-smart-linked-products.php:388
    4545msgid "WPC Smart Linked Products"
    4646msgstr ""
    4747
    48 #: wpc-smart-linked-products.php:350
    49 #: wpc-smart-linked-products.php:400
    50 #: wpc-smart-linked-products.php:842
     48#: wpc-smart-linked-products.php:369
     49#: wpc-smart-linked-products.php:419
     50#: wpc-smart-linked-products.php:881
    5151msgid "Smart Upsells"
    5252msgstr ""
    5353
    54 #: wpc-smart-linked-products.php:354
    55 #: wpc-smart-linked-products.php:404
    56 #: wpc-smart-linked-products.php:843
     54#: wpc-smart-linked-products.php:373
     55#: wpc-smart-linked-products.php:423
     56#: wpc-smart-linked-products.php:882
    5757msgid "Smart Cross-sells"
    5858msgstr ""
    5959
    60 #: wpc-smart-linked-products.php:369
     60#: wpc-smart-linked-products.php:388
    6161msgid "Premium"
    6262msgstr ""
    6363
    6464#. translators: stars
    65 #: wpc-smart-linked-products.php:372
     65#: wpc-smart-linked-products.php:391
    6666#, php-format
    6767msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating."
    6868msgstr ""
    6969
    70 #: wpc-smart-linked-products.php:375
     70#: wpc-smart-linked-products.php:394
    7171msgid "Reviews"
    7272msgstr ""
    7373
    74 #: wpc-smart-linked-products.php:378
     74#: wpc-smart-linked-products.php:397
    7575msgid "Changelog"
    7676msgstr ""
    7777
    78 #: wpc-smart-linked-products.php:381
     78#: wpc-smart-linked-products.php:400
    7979msgid "Discussion"
    8080msgstr ""
    8181
    82 #: wpc-smart-linked-products.php:389
     82#: wpc-smart-linked-products.php:408
    8383msgid "Settings updated."
    8484msgstr ""
    8585
    86 #: wpc-smart-linked-products.php:396
    87 #: wpc-smart-linked-products.php:841
     86#: wpc-smart-linked-products.php:415
     87#: wpc-smart-linked-products.php:880
    8888msgid "Settings"
    8989msgstr ""
    9090
    91 #: wpc-smart-linked-products.php:409
    92 #: wpc-smart-linked-products.php:844
     91#: wpc-smart-linked-products.php:428
     92#: wpc-smart-linked-products.php:883
    9393msgid "Premium Version"
    9494msgstr ""
    9595
    96 #: wpc-smart-linked-products.php:413
     96#: wpc-smart-linked-products.php:432
    9797msgid "Essential Kit"
    9898msgstr ""
    9999
    100 #: wpc-smart-linked-products.php:426
     100#: wpc-smart-linked-products.php:445
    101101msgid "General"
    102102msgstr ""
    103103
    104 #: wpc-smart-linked-products.php:430
     104#: wpc-smart-linked-products.php:449
    105105msgid "Exclude unpurchasable"
    106106msgstr ""
    107107
    108 #: wpc-smart-linked-products.php:433
     108#: wpc-smart-linked-products.php:452
    109109msgid "Yes"
    110110msgstr ""
    111111
    112 #: wpc-smart-linked-products.php:434
     112#: wpc-smart-linked-products.php:453
    113113msgid "No"
    114114msgstr ""
    115115
    116 #: wpc-smart-linked-products.php:436
     116#: wpc-smart-linked-products.php:455
    117117msgid "Exclude unpurchasable products from upsells/cross-sells."
    118118msgstr ""
    119119
    120 #: wpc-smart-linked-products.php:500
     120#: wpc-smart-linked-products.php:528
    121121msgid "Our plugin checks rules from the top down the list. When there are products that satisfy more than 1 rule, the first rule on top will be prioritized. Please make sure you put the rules in the order of the most to the least prioritized."
    122122msgstr ""
    123123
    124 #: wpc-smart-linked-products.php:520
     124#: wpc-smart-linked-products.php:548
    125125msgid "+ Add rule"
    126126msgstr ""
    127127
    128 #: wpc-smart-linked-products.php:522
     128#: wpc-smart-linked-products.php:550
    129129msgid "Expand All"
    130130msgstr ""
    131131
    132 #: wpc-smart-linked-products.php:524
     132#: wpc-smart-linked-products.php:552
    133133msgid "Collapse All"
    134134msgstr ""
    135135
    136 #: wpc-smart-linked-products.php:531
     136#: wpc-smart-linked-products.php:559
    137137msgid "Remember to save current rules before exporting to get the latest version."
    138138msgstr ""
    139139
    140 #: wpc-smart-linked-products.php:532
     140#: wpc-smart-linked-products.php:560
    141141msgid "import / export"
    142142msgstr ""
    143143
    144 #: wpc-smart-linked-products.php:588
     144#: wpc-smart-linked-products.php:627
    145145msgid "duplicate"
    146146msgstr ""
    147147
    148 #: wpc-smart-linked-products.php:590
     148#: wpc-smart-linked-products.php:629
    149149msgid "remove"
    150150msgstr ""
    151151
    152 #: wpc-smart-linked-products.php:595
    153 #: wpc-smart-linked-products.php:653
     152#: wpc-smart-linked-products.php:634
     153#: wpc-smart-linked-products.php:692
    154154msgid "Name"
    155155msgstr ""
    156156
    157 #: wpc-smart-linked-products.php:601
     157#: wpc-smart-linked-products.php:640
    158158msgid "For management only."
    159159msgstr ""
    160160
    161 #: wpc-smart-linked-products.php:606
     161#: wpc-smart-linked-products.php:645
    162162msgid "Add linked products to which?"
    163163msgstr ""
    164164
    165 #: wpc-smart-linked-products.php:612
     165#: wpc-smart-linked-products.php:651
    166166msgid "Define applicable linked products:"
    167167msgstr ""
    168168
    169 #: wpc-smart-linked-products.php:624
     169#: wpc-smart-linked-products.php:663
    170170msgid "Source"
    171171msgstr ""
    172172
    173 #: wpc-smart-linked-products.php:629
     173#: wpc-smart-linked-products.php:668
    174174msgid "All products"
    175175msgstr ""
    176176
    177 #: wpc-smart-linked-products.php:630
    178 #: wpc-smart-linked-products.php:672
     177#: wpc-smart-linked-products.php:669
     178#: wpc-smart-linked-products.php:711
    179179msgid "Products"
    180180msgstr ""
    181181
    182 #: wpc-smart-linked-products.php:632
     182#: wpc-smart-linked-products.php:671
    183183msgid "Combined (Premium)"
    184184msgstr ""
    185185
    186 #: wpc-smart-linked-products.php:643
     186#: wpc-smart-linked-products.php:682
    187187msgid "Limit"
    188188msgstr ""
    189189
    190 #: wpc-smart-linked-products.php:648
     190#: wpc-smart-linked-products.php:687
    191191msgid "Order by"
    192192msgstr ""
    193193
    194 #: wpc-smart-linked-products.php:650
    195 #: wpc-smart-linked-products.php:663
     194#: wpc-smart-linked-products.php:689
     195#: wpc-smart-linked-products.php:702
    196196msgid "Default"
    197197msgstr ""
    198198
    199 #: wpc-smart-linked-products.php:651
     199#: wpc-smart-linked-products.php:690
    200200msgid "None"
    201201msgstr ""
    202202
    203 #: wpc-smart-linked-products.php:652
     203#: wpc-smart-linked-products.php:691
    204204msgid "ID"
    205205msgstr ""
    206206
    207 #: wpc-smart-linked-products.php:654
     207#: wpc-smart-linked-products.php:693
    208208msgid "Type"
    209209msgstr ""
    210210
    211 #: wpc-smart-linked-products.php:655
     211#: wpc-smart-linked-products.php:694
    212212msgid "Rand"
    213213msgstr ""
    214214
    215 #: wpc-smart-linked-products.php:656
     215#: wpc-smart-linked-products.php:695
    216216msgid "Date"
    217217msgstr ""
    218218
    219 #: wpc-smart-linked-products.php:657
     219#: wpc-smart-linked-products.php:696
    220220msgid "Price"
    221221msgstr ""
    222222
    223 #: wpc-smart-linked-products.php:658
     223#: wpc-smart-linked-products.php:697
    224224msgid "Modified"
    225225msgstr ""
    226226
    227 #: wpc-smart-linked-products.php:661
     227#: wpc-smart-linked-products.php:700
    228228msgid "Order"
    229229msgstr ""
    230230
    231 #: wpc-smart-linked-products.php:664
     231#: wpc-smart-linked-products.php:703
    232232msgid "DESC"
    233233msgstr ""
    234234
    235 #: wpc-smart-linked-products.php:665
     235#: wpc-smart-linked-products.php:704
    236236msgid "ASC"
    237237msgstr ""
    238238
    239 #: wpc-smart-linked-products.php:677
     239#: wpc-smart-linked-products.php:716
    240240msgid "Search for a product&hellip;"
    241241msgstr ""
    242242
    243 #: wpc-smart-linked-products.php:692
     243#: wpc-smart-linked-products.php:731
    244244msgid "Terms"
    245245msgstr ""
    246246
    247 #: wpc-smart-linked-products.php:860
     247#: wpc-smart-linked-products.php:899
    248248msgid "Community support"
    249249msgstr ""
  • wpc-smart-linked-products/trunk/readme.txt

    r3403138 r3482866  
    44Tags: woocommerce, wpc, linked, upsells, cross-sells
    55Requires at least: 4.0
    6 Tested up to: 6.8
    7 Version: 1.4.1
    8 Stable tag: 1.4.1
     6Tested up to: 6.9
     7Version: 1.4.2
     8Stable tag: 1.4.2
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    7474
    7575== Changelog ==
     76
     77= 1.4.2 =
     78* Fixed: Minor JS/CSS issues in the backend
     79* Updated: Compatible with WP 6.9 & Woo 10.6
    7680
    7781= 1.4.1 =
  • wpc-smart-linked-products/trunk/wpc-smart-linked-products.php

    r3403138 r3482866  
    44Plugin URI: https://wpclever.net/
    55Description: WPC Smart Linked Products plugin simplifies managing related, upsells, and cross-sells products in bulk with custom rules and mixed combinations.
    6 Version: 1.4.1
     6Version: 1.4.2
    77Author: WPClever
    88Author URI: https://wpclever.net
     
    1111Requires Plugins: woocommerce
    1212Requires at least: 4.0
    13 Tested up to: 6.8
     13Tested up to: 6.9
    1414WC requires at least: 3.0
    15 WC tested up to: 10.3
     15WC tested up to: 10.6
    1616License: GPLv2 or later
    1717License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    2020defined( 'ABSPATH' ) || exit;
    2121
    22 ! defined( 'WPCSL_VERSION' ) && define( 'WPCSL_VERSION', '1.4.1' );
     22! defined( 'WPCSL_VERSION' ) && define( 'WPCSL_VERSION', '1.4.2' );
    2323! defined( 'WPCSL_LITE' ) && define( 'WPCSL_LITE', __FILE__ );
    2424! defined( 'WPCSL_FILE' ) && define( 'WPCSL_FILE', __FILE__ );
     
    3131! defined( 'WPC_URI' ) && define( 'WPC_URI', WPCSL_URI );
    3232
     33include 'includes/log/wpc-log.php';
    3334include 'includes/dashboard/wpc-dashboard.php';
    3435include 'includes/kit/wpc-kit.php';
     
    7071                    // Settings
    7172                    add_action( 'admin_init', [ $this, 'register_settings' ] );
     73                    add_filter( 'pre_update_option', [ $this, 'last_saved' ], 10, 2 );
    7274                    add_action( 'admin_menu', [ $this, 'admin_menu' ] );
    7375
     
    314316                            'sanitize_callback' => [ $this, 'sanitize_array' ],
    315317                    ] );
     318                    register_setting( 'wpcsl_cs', 'wpcsl_cs_settings', [
     319                            'type'              => 'array',
     320                            'sanitize_callback' => [ $this, 'sanitize_array' ],
     321                    ] );
    316322                    register_setting( 'wpcsl_cs', 'wpcsl_cs', [
     323                            'type'              => 'array',
     324                            'sanitize_callback' => [ $this, 'sanitize_array' ],
     325                    ] );
     326                    register_setting( 'wpcsl_us', 'wpcsl_us_settings', [
    317327                            'type'              => 'array',
    318328                            'sanitize_callback' => [ $this, 'sanitize_array' ],
     
    322332                            'sanitize_callback' => [ $this, 'sanitize_array' ],
    323333                    ] );
     334                }
     335
     336                function last_saved( $value, $option ) {
     337                    if ( $option == 'wpcsl_settings' || $option == 'wpcsl_cs_settings' || $option == 'wpcsl_us_settings' ) {
     338                        $value['_last_saved']    = current_time( 'timestamp' );
     339                        $value['_last_saved_by'] = get_current_user_id();
     340                    }
     341
     342                    return $value;
    324343                }
    325344
     
    439458                                        <tr class="submit">
    440459                                            <th colspan="2">
    441                                                 <?php settings_fields( 'wpcsl_settings' ); ?><?php submit_button(); ?>
     460                                                <div class="wpclever_submit">
     461                                                    <?php
     462                                                    settings_fields( 'wpcsl_settings' );
     463                                                    submit_button( '', 'primary', 'submit', false );
     464
     465                                                    if ( function_exists( 'wpc_last_saved' ) ) {
     466                                                        wpc_last_saved( get_option( 'wpcsl_settings', [] ) );
     467                                                    }
     468                                                    ?>
     469                                                </div>
    442470                                            </th>
    443471                                        </tr>
     
    537565                            <tr class="submit">
    538566                                <th colspan="2">
    539                                     <?php settings_fields( $name ); ?><?php submit_button(); ?>
     567                                    <div class="wpclever_submit">
     568                                        <?php
     569                                        $log = $name . '_settings';
     570                                        echo '<input type="hidden" name="' . $log . '[version]" value="' . esc_attr( WPCSL_VERSION ) . '"/>';
     571                                        settings_fields( $name );
     572                                        submit_button( '', 'primary', 'submit', false );
     573
     574                                        if ( function_exists( 'wpc_last_saved' ) ) {
     575                                            wpc_last_saved( get_option( $log, [] ) );
     576                                        }
     577                                        ?>
     578                                    </div>
    540579                                </th>
    541580                            </tr>
Note: See TracChangeset for help on using the changeset viewer.