Changeset 3482866
- Timestamp:
- 03/15/2026 04:03:22 AM (13 days ago)
- Location:
- wpc-smart-linked-products
- Files:
-
- 34 added
- 7 edited
-
tags/1.4.2 (added)
-
tags/1.4.2/assets (added)
-
tags/1.4.2/assets/css (added)
-
tags/1.4.2/assets/css/backend.css (added)
-
tags/1.4.2/assets/css/hint.css (added)
-
tags/1.4.2/assets/js (added)
-
tags/1.4.2/assets/js/backend.js (added)
-
tags/1.4.2/includes (added)
-
tags/1.4.2/includes/dashboard (added)
-
tags/1.4.2/includes/dashboard/css (added)
-
tags/1.4.2/includes/dashboard/css/dashboard.css (added)
-
tags/1.4.2/includes/dashboard/css/dashboard.css.map (added)
-
tags/1.4.2/includes/dashboard/css/dashboard.scss (added)
-
tags/1.4.2/includes/dashboard/images (added)
-
tags/1.4.2/includes/dashboard/images/wpc-icon.svg (added)
-
tags/1.4.2/includes/dashboard/js (added)
-
tags/1.4.2/includes/dashboard/js/backend.js (added)
-
tags/1.4.2/includes/dashboard/wpc-dashboard.php (added)
-
tags/1.4.2/includes/hpos.php (added)
-
tags/1.4.2/includes/kit (added)
-
tags/1.4.2/includes/kit/css (added)
-
tags/1.4.2/includes/kit/css/backend.css (added)
-
tags/1.4.2/includes/kit/js (added)
-
tags/1.4.2/includes/kit/js/backend.js (added)
-
tags/1.4.2/includes/kit/wpc-kit.php (added)
-
tags/1.4.2/includes/log (added)
-
tags/1.4.2/includes/log/wpc-log.php (added)
-
tags/1.4.2/index.php (added)
-
tags/1.4.2/languages (added)
-
tags/1.4.2/languages/wpc-smart-linked-products.pot (added)
-
tags/1.4.2/readme.txt (added)
-
tags/1.4.2/wpc-smart-linked-products.php (added)
-
trunk/includes/dashboard/css/dashboard.css (modified) (3 diffs)
-
trunk/includes/dashboard/css/dashboard.css.map (modified) (1 diff)
-
trunk/includes/dashboard/css/dashboard.scss (modified) (3 diffs)
-
trunk/includes/dashboard/wpc-dashboard.php (modified) (3 diffs)
-
trunk/includes/log (added)
-
trunk/includes/log/wpc-log.php (added)
-
trunk/languages/wpc-smart-linked-products.pot (modified) (3 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/wpc-smart-linked-products.php (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wpc-smart-linked-products/trunk/includes/dashboard/css/dashboard.css
r3403138 r3482866 287 287 } 288 288 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 289 311 .wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export { 290 312 position: absolute; … … 293 315 transform: translateY(-50%); 294 316 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; 295 330 } 296 331 … … 462 497 border-left: none; 463 498 border-right: 4px solid #23282d; 499 } 500 501 body.rtl .wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export { 502 left: 20px; 503 right: auto; 464 504 } 465 505 -
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 299 299 } 300 300 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 301 323 .wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export { 302 324 position: absolute; … … 305 327 transform: translateY(-50%); 306 328 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; 307 348 } 308 349 … … 478 519 border-left: none; 479 520 border-right: 4px solid #23282d; 521 } 522 523 body.rtl .wpclever_settings_page .wpclever_settings_page_content table tr.submit .wpclever_export { 524 left: 20px; 525 right: auto; 480 526 } 481 527 -
wpc-smart-linked-products/trunk/includes/dashboard/wpc-dashboard.php
r3403138 r3482866 1 1 <?php 2 2 defined( 'ABSPATH' ) || exit; 3 4 if ( ! class_exists( 'WPCleverMenu' ) ) {5 class WPCleverMenu {6 function __construct() {7 // do nothing, moved to WPCleverDashboard8 }9 }10 11 new WPCleverMenu();12 }13 3 14 4 if ( ! class_exists( 'WPCleverDashboard' ) ) { … … 232 222 233 223 if ( ! empty( $key ) && ( $settings = get_option( $key ) ) ) { 224 unset( $settings['_last_saved'] ); 225 unset( $settings['_last_saved_by'] ); 226 234 227 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>'; 235 228 echo '<div style="display: flex; align-items: center"><button class="button button-primary wpclever_import" data-key="' . esc_attr( $key ) . '">Update</button>'; … … 265 258 new WPCleverDashboard(); 266 259 } 260 261 if ( ! 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) 202 5WPClever1 # Copyright (C) 2026 WPClever 2 2 # This file is distributed under the GPLv2 or later. 3 3 msgid "" 4 4 msgstr "" 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" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpc-smart-linked-products\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 202 5-11-26T08:39:43+00:00\n"12 "POT-Creation-Date: 2026-03-15T04:01:46+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 40 40 msgstr "" 41 41 42 #: wpc-smart-linked-products.php:35043 #: wpc-smart-linked-products.php:35444 42 #: wpc-smart-linked-products.php:369 43 #: wpc-smart-linked-products.php:373 44 #: wpc-smart-linked-products.php:388 45 45 msgid "WPC Smart Linked Products" 46 46 msgstr "" 47 47 48 #: wpc-smart-linked-products.php:3 5049 #: wpc-smart-linked-products.php:4 0050 #: wpc-smart-linked-products.php:8 4248 #: wpc-smart-linked-products.php:369 49 #: wpc-smart-linked-products.php:419 50 #: wpc-smart-linked-products.php:881 51 51 msgid "Smart Upsells" 52 52 msgstr "" 53 53 54 #: wpc-smart-linked-products.php:3 5455 #: wpc-smart-linked-products.php:4 0456 #: wpc-smart-linked-products.php:8 4354 #: wpc-smart-linked-products.php:373 55 #: wpc-smart-linked-products.php:423 56 #: wpc-smart-linked-products.php:882 57 57 msgid "Smart Cross-sells" 58 58 msgstr "" 59 59 60 #: wpc-smart-linked-products.php:3 6960 #: wpc-smart-linked-products.php:388 61 61 msgid "Premium" 62 62 msgstr "" 63 63 64 64 #. translators: stars 65 #: wpc-smart-linked-products.php:3 7265 #: wpc-smart-linked-products.php:391 66 66 #, php-format 67 67 msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating." 68 68 msgstr "" 69 69 70 #: wpc-smart-linked-products.php:3 7570 #: wpc-smart-linked-products.php:394 71 71 msgid "Reviews" 72 72 msgstr "" 73 73 74 #: wpc-smart-linked-products.php:3 7874 #: wpc-smart-linked-products.php:397 75 75 msgid "Changelog" 76 76 msgstr "" 77 77 78 #: wpc-smart-linked-products.php: 38178 #: wpc-smart-linked-products.php:400 79 79 msgid "Discussion" 80 80 msgstr "" 81 81 82 #: wpc-smart-linked-products.php: 38982 #: wpc-smart-linked-products.php:408 83 83 msgid "Settings updated." 84 84 msgstr "" 85 85 86 #: wpc-smart-linked-products.php: 39687 #: wpc-smart-linked-products.php:8 4186 #: wpc-smart-linked-products.php:415 87 #: wpc-smart-linked-products.php:880 88 88 msgid "Settings" 89 89 msgstr "" 90 90 91 #: wpc-smart-linked-products.php:4 0992 #: wpc-smart-linked-products.php:8 4491 #: wpc-smart-linked-products.php:428 92 #: wpc-smart-linked-products.php:883 93 93 msgid "Premium Version" 94 94 msgstr "" 95 95 96 #: wpc-smart-linked-products.php:4 1396 #: wpc-smart-linked-products.php:432 97 97 msgid "Essential Kit" 98 98 msgstr "" 99 99 100 #: wpc-smart-linked-products.php:4 26100 #: wpc-smart-linked-products.php:445 101 101 msgid "General" 102 102 msgstr "" 103 103 104 #: wpc-smart-linked-products.php:4 30104 #: wpc-smart-linked-products.php:449 105 105 msgid "Exclude unpurchasable" 106 106 msgstr "" 107 107 108 #: wpc-smart-linked-products.php:4 33108 #: wpc-smart-linked-products.php:452 109 109 msgid "Yes" 110 110 msgstr "" 111 111 112 #: wpc-smart-linked-products.php:4 34112 #: wpc-smart-linked-products.php:453 113 113 msgid "No" 114 114 msgstr "" 115 115 116 #: wpc-smart-linked-products.php:4 36116 #: wpc-smart-linked-products.php:455 117 117 msgid "Exclude unpurchasable products from upsells/cross-sells." 118 118 msgstr "" 119 119 120 #: wpc-smart-linked-products.php:5 00120 #: wpc-smart-linked-products.php:528 121 121 msgid "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." 122 122 msgstr "" 123 123 124 #: wpc-smart-linked-products.php:5 20124 #: wpc-smart-linked-products.php:548 125 125 msgid "+ Add rule" 126 126 msgstr "" 127 127 128 #: wpc-smart-linked-products.php:5 22128 #: wpc-smart-linked-products.php:550 129 129 msgid "Expand All" 130 130 msgstr "" 131 131 132 #: wpc-smart-linked-products.php:5 24132 #: wpc-smart-linked-products.php:552 133 133 msgid "Collapse All" 134 134 msgstr "" 135 135 136 #: wpc-smart-linked-products.php:5 31136 #: wpc-smart-linked-products.php:559 137 137 msgid "Remember to save current rules before exporting to get the latest version." 138 138 msgstr "" 139 139 140 #: wpc-smart-linked-products.php:5 32140 #: wpc-smart-linked-products.php:560 141 141 msgid "import / export" 142 142 msgstr "" 143 143 144 #: wpc-smart-linked-products.php: 588144 #: wpc-smart-linked-products.php:627 145 145 msgid "duplicate" 146 146 msgstr "" 147 147 148 #: wpc-smart-linked-products.php: 590148 #: wpc-smart-linked-products.php:629 149 149 msgid "remove" 150 150 msgstr "" 151 151 152 #: wpc-smart-linked-products.php: 595153 #: wpc-smart-linked-products.php:6 53152 #: wpc-smart-linked-products.php:634 153 #: wpc-smart-linked-products.php:692 154 154 msgid "Name" 155 155 msgstr "" 156 156 157 #: wpc-smart-linked-products.php:6 01157 #: wpc-smart-linked-products.php:640 158 158 msgid "For management only." 159 159 msgstr "" 160 160 161 #: wpc-smart-linked-products.php:6 06161 #: wpc-smart-linked-products.php:645 162 162 msgid "Add linked products to which?" 163 163 msgstr "" 164 164 165 #: wpc-smart-linked-products.php:6 12165 #: wpc-smart-linked-products.php:651 166 166 msgid "Define applicable linked products:" 167 167 msgstr "" 168 168 169 #: wpc-smart-linked-products.php:6 24169 #: wpc-smart-linked-products.php:663 170 170 msgid "Source" 171 171 msgstr "" 172 172 173 #: wpc-smart-linked-products.php:6 29173 #: wpc-smart-linked-products.php:668 174 174 msgid "All products" 175 175 msgstr "" 176 176 177 #: wpc-smart-linked-products.php:6 30178 #: wpc-smart-linked-products.php: 672177 #: wpc-smart-linked-products.php:669 178 #: wpc-smart-linked-products.php:711 179 179 msgid "Products" 180 180 msgstr "" 181 181 182 #: wpc-smart-linked-products.php:6 32182 #: wpc-smart-linked-products.php:671 183 183 msgid "Combined (Premium)" 184 184 msgstr "" 185 185 186 #: wpc-smart-linked-products.php:6 43186 #: wpc-smart-linked-products.php:682 187 187 msgid "Limit" 188 188 msgstr "" 189 189 190 #: wpc-smart-linked-products.php:6 48190 #: wpc-smart-linked-products.php:687 191 191 msgid "Order by" 192 192 msgstr "" 193 193 194 #: wpc-smart-linked-products.php:6 50195 #: wpc-smart-linked-products.php: 663194 #: wpc-smart-linked-products.php:689 195 #: wpc-smart-linked-products.php:702 196 196 msgid "Default" 197 197 msgstr "" 198 198 199 #: wpc-smart-linked-products.php:6 51199 #: wpc-smart-linked-products.php:690 200 200 msgid "None" 201 201 msgstr "" 202 202 203 #: wpc-smart-linked-products.php:6 52203 #: wpc-smart-linked-products.php:691 204 204 msgid "ID" 205 205 msgstr "" 206 206 207 #: wpc-smart-linked-products.php:6 54207 #: wpc-smart-linked-products.php:693 208 208 msgid "Type" 209 209 msgstr "" 210 210 211 #: wpc-smart-linked-products.php:6 55211 #: wpc-smart-linked-products.php:694 212 212 msgid "Rand" 213 213 msgstr "" 214 214 215 #: wpc-smart-linked-products.php:6 56215 #: wpc-smart-linked-products.php:695 216 216 msgid "Date" 217 217 msgstr "" 218 218 219 #: wpc-smart-linked-products.php:6 57219 #: wpc-smart-linked-products.php:696 220 220 msgid "Price" 221 221 msgstr "" 222 222 223 #: wpc-smart-linked-products.php:6 58223 #: wpc-smart-linked-products.php:697 224 224 msgid "Modified" 225 225 msgstr "" 226 226 227 #: wpc-smart-linked-products.php: 661227 #: wpc-smart-linked-products.php:700 228 228 msgid "Order" 229 229 msgstr "" 230 230 231 #: wpc-smart-linked-products.php: 664231 #: wpc-smart-linked-products.php:703 232 232 msgid "DESC" 233 233 msgstr "" 234 234 235 #: wpc-smart-linked-products.php: 665235 #: wpc-smart-linked-products.php:704 236 236 msgid "ASC" 237 237 msgstr "" 238 238 239 #: wpc-smart-linked-products.php: 677239 #: wpc-smart-linked-products.php:716 240 240 msgid "Search for a product…" 241 241 msgstr "" 242 242 243 #: wpc-smart-linked-products.php: 692243 #: wpc-smart-linked-products.php:731 244 244 msgid "Terms" 245 245 msgstr "" 246 246 247 #: wpc-smart-linked-products.php:8 60247 #: wpc-smart-linked-products.php:899 248 248 msgid "Community support" 249 249 msgstr "" -
wpc-smart-linked-products/trunk/readme.txt
r3403138 r3482866 4 4 Tags: woocommerce, wpc, linked, upsells, cross-sells 5 5 Requires at least: 4.0 6 Tested up to: 6. 87 Version: 1.4. 18 Stable tag: 1.4. 16 Tested up to: 6.9 7 Version: 1.4.2 8 Stable tag: 1.4.2 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 74 74 75 75 == 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 76 80 77 81 = 1.4.1 = -
wpc-smart-linked-products/trunk/wpc-smart-linked-products.php
r3403138 r3482866 4 4 Plugin URI: https://wpclever.net/ 5 5 Description: 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. 16 Version: 1.4.2 7 7 Author: WPClever 8 8 Author URI: https://wpclever.net … … 11 11 Requires Plugins: woocommerce 12 12 Requires at least: 4.0 13 Tested up to: 6. 813 Tested up to: 6.9 14 14 WC requires at least: 3.0 15 WC tested up to: 10. 315 WC tested up to: 10.6 16 16 License: GPLv2 or later 17 17 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 20 20 defined( 'ABSPATH' ) || exit; 21 21 22 ! defined( 'WPCSL_VERSION' ) && define( 'WPCSL_VERSION', '1.4. 1' );22 ! defined( 'WPCSL_VERSION' ) && define( 'WPCSL_VERSION', '1.4.2' ); 23 23 ! defined( 'WPCSL_LITE' ) && define( 'WPCSL_LITE', __FILE__ ); 24 24 ! defined( 'WPCSL_FILE' ) && define( 'WPCSL_FILE', __FILE__ ); … … 31 31 ! defined( 'WPC_URI' ) && define( 'WPC_URI', WPCSL_URI ); 32 32 33 include 'includes/log/wpc-log.php'; 33 34 include 'includes/dashboard/wpc-dashboard.php'; 34 35 include 'includes/kit/wpc-kit.php'; … … 70 71 // Settings 71 72 add_action( 'admin_init', [ $this, 'register_settings' ] ); 73 add_filter( 'pre_update_option', [ $this, 'last_saved' ], 10, 2 ); 72 74 add_action( 'admin_menu', [ $this, 'admin_menu' ] ); 73 75 … … 314 316 'sanitize_callback' => [ $this, 'sanitize_array' ], 315 317 ] ); 318 register_setting( 'wpcsl_cs', 'wpcsl_cs_settings', [ 319 'type' => 'array', 320 'sanitize_callback' => [ $this, 'sanitize_array' ], 321 ] ); 316 322 register_setting( 'wpcsl_cs', 'wpcsl_cs', [ 323 'type' => 'array', 324 'sanitize_callback' => [ $this, 'sanitize_array' ], 325 ] ); 326 register_setting( 'wpcsl_us', 'wpcsl_us_settings', [ 317 327 'type' => 'array', 318 328 'sanitize_callback' => [ $this, 'sanitize_array' ], … … 322 332 'sanitize_callback' => [ $this, 'sanitize_array' ], 323 333 ] ); 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; 324 343 } 325 344 … … 439 458 <tr class="submit"> 440 459 <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> 442 470 </th> 443 471 </tr> … … 537 565 <tr class="submit"> 538 566 <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> 540 579 </th> 541 580 </tr>
Note: See TracChangeset
for help on using the changeset viewer.