Changeset 3486909
- Timestamp:
- 03/20/2026 02:38:20 AM (8 days ago)
- Location:
- wpc-product-options
- Files:
-
- 110 added
- 9 edited
-
tags/3.1.4 (added)
-
tags/3.1.4/assets (added)
-
tags/3.1.4/assets/css (added)
-
tags/3.1.4/assets/css/backend.css (added)
-
tags/3.1.4/assets/css/backend.css.map (added)
-
tags/3.1.4/assets/css/backend.scss (added)
-
tags/3.1.4/assets/css/frontend.css (added)
-
tags/3.1.4/assets/css/frontend.css.map (added)
-
tags/3.1.4/assets/css/frontend.scss (added)
-
tags/3.1.4/assets/css/hint.css (added)
-
tags/3.1.4/assets/js (added)
-
tags/3.1.4/assets/js/backend.js (added)
-
tags/3.1.4/assets/js/frontend.js (added)
-
tags/3.1.4/assets/libs (added)
-
tags/3.1.4/assets/libs/hint (added)
-
tags/3.1.4/assets/libs/hint/hint.css (added)
-
tags/3.1.4/assets/libs/tippy (added)
-
tags/3.1.4/assets/libs/tippy/popper.min.js (added)
-
tags/3.1.4/assets/libs/tippy/popper.min.js.map (added)
-
tags/3.1.4/assets/libs/tippy/tippy-bundle.umd.min.js (added)
-
tags/3.1.4/assets/libs/tippy/tippy-bundle.umd.min.js.map (added)
-
tags/3.1.4/assets/libs/wpcdpk (added)
-
tags/3.1.4/assets/libs/wpcdpk/css (added)
-
tags/3.1.4/assets/libs/wpcdpk/css/datepicker.css (added)
-
tags/3.1.4/assets/libs/wpcdpk/js (added)
-
tags/3.1.4/assets/libs/wpcdpk/js/datepicker.js (added)
-
tags/3.1.4/includes (added)
-
tags/3.1.4/includes/class-backend.php (added)
-
tags/3.1.4/includes/class-cart.php (added)
-
tags/3.1.4/includes/class-frontend.php (added)
-
tags/3.1.4/includes/dashboard (added)
-
tags/3.1.4/includes/dashboard/css (added)
-
tags/3.1.4/includes/dashboard/css/dashboard.css (added)
-
tags/3.1.4/includes/dashboard/css/dashboard.css.map (added)
-
tags/3.1.4/includes/dashboard/css/dashboard.scss (added)
-
tags/3.1.4/includes/dashboard/images (added)
-
tags/3.1.4/includes/dashboard/images/wpc-icon.svg (added)
-
tags/3.1.4/includes/dashboard/js (added)
-
tags/3.1.4/includes/dashboard/js/backend.js (added)
-
tags/3.1.4/includes/dashboard/wpc-dashboard.php (added)
-
tags/3.1.4/includes/hpos.php (added)
-
tags/3.1.4/includes/kit (added)
-
tags/3.1.4/includes/kit/css (added)
-
tags/3.1.4/includes/kit/css/backend.css (added)
-
tags/3.1.4/includes/kit/js (added)
-
tags/3.1.4/includes/kit/js/backend.js (added)
-
tags/3.1.4/includes/kit/wpc-kit.php (added)
-
tags/3.1.4/includes/log (added)
-
tags/3.1.4/includes/log/wpc-log.php (added)
-
tags/3.1.4/includes/templates (added)
-
tags/3.1.4/includes/templates/configuration.php (added)
-
tags/3.1.4/includes/templates/display.php (added)
-
tags/3.1.4/includes/templates/field.php (added)
-
tags/3.1.4/includes/templates/fields (added)
-
tags/3.1.4/includes/templates/fields.php (added)
-
tags/3.1.4/includes/templates/fields/appearance-heading.php (added)
-
tags/3.1.4/includes/templates/fields/appearance-paragraph.php (added)
-
tags/3.1.4/includes/templates/fields/appearance-separator.php (added)
-
tags/3.1.4/includes/templates/fields/appearance-shortcode.php (added)
-
tags/3.1.4/includes/templates/fields/appearance-spacer.php (added)
-
tags/3.1.4/includes/templates/fields/color-picker.php (added)
-
tags/3.1.4/includes/templates/fields/condition.php (added)
-
tags/3.1.4/includes/templates/fields/conditions.php (added)
-
tags/3.1.4/includes/templates/fields/date-picker.php (added)
-
tags/3.1.4/includes/templates/fields/date-range-picker.php (added)
-
tags/3.1.4/includes/templates/fields/date-time-picker.php (added)
-
tags/3.1.4/includes/templates/fields/dimension.php (added)
-
tags/3.1.4/includes/templates/fields/dimensions.php (added)
-
tags/3.1.4/includes/templates/fields/file-upload.php (added)
-
tags/3.1.4/includes/templates/fields/option.php (added)
-
tags/3.1.4/includes/templates/fields/options.php (added)
-
tags/3.1.4/includes/templates/fields/quantity.php (added)
-
tags/3.1.4/includes/templates/fields/select.php (added)
-
tags/3.1.4/includes/templates/fields/text.php (added)
-
tags/3.1.4/includes/templates/fields/time-picker.php (added)
-
tags/3.1.4/includes/templates/panel.php (added)
-
tags/3.1.4/index.php (added)
-
tags/3.1.4/languages (added)
-
tags/3.1.4/languages/wpc-product-options.pot (added)
-
tags/3.1.4/readme.txt (added)
-
tags/3.1.4/templates (added)
-
tags/3.1.4/templates/fields (added)
-
tags/3.1.4/templates/fields/appearance-heading.php (added)
-
tags/3.1.4/templates/fields/appearance-paragraph.php (added)
-
tags/3.1.4/templates/fields/appearance-separator.php (added)
-
tags/3.1.4/templates/fields/appearance-shortcode.php (added)
-
tags/3.1.4/templates/fields/appearance-spacer.php (added)
-
tags/3.1.4/templates/fields/checkbox.php (added)
-
tags/3.1.4/templates/fields/color-checkbox.php (added)
-
tags/3.1.4/templates/fields/color-picker.php (added)
-
tags/3.1.4/templates/fields/color-radio.php (added)
-
tags/3.1.4/templates/fields/date-picker.php (added)
-
tags/3.1.4/templates/fields/date-range-picker.php (added)
-
tags/3.1.4/templates/fields/date-time-picker.php (added)
-
tags/3.1.4/templates/fields/dimensions.php (added)
-
tags/3.1.4/templates/fields/email.php (added)
-
tags/3.1.4/templates/fields/file-upload.php (added)
-
tags/3.1.4/templates/fields/image-checkbox.php (added)
-
tags/3.1.4/templates/fields/image-radio.php (added)
-
tags/3.1.4/templates/fields/number.php (added)
-
tags/3.1.4/templates/fields/quantity.php (added)
-
tags/3.1.4/templates/fields/radio.php (added)
-
tags/3.1.4/templates/fields/select.php (added)
-
tags/3.1.4/templates/fields/text.php (added)
-
tags/3.1.4/templates/fields/textarea.php (added)
-
tags/3.1.4/templates/fields/time-picker.php (added)
-
tags/3.1.4/templates/options.php (added)
-
tags/3.1.4/wpc-product-options.php (added)
-
trunk/includes/class-backend.php (modified) (5 diffs)
-
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-product-options.pot (modified) (5 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/templates/fields/select.php (modified) (1 diff)
-
trunk/wpc-product-options.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wpc-product-options/trunk/includes/class-backend.php
r3467249 r3486909 25 25 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); 26 26 add_action( 'admin_init', [ $this, 'register_settings' ] ); 27 add_filter( 'pre_update_option', [ $this, 'last_saved' ], 10, 2 ); 27 28 add_action( 'admin_menu', [ $this, 'admin_menu' ] ); 28 29 add_filter( 'plugin_action_links', [ $this, 'action_links' ], 10, 2 ); … … 233 234 'sanitize_callback' => [ $this, 'sanitize_array' ], 234 235 ] ); 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; 235 245 } 236 246 … … 367 377 <tr class="submit"> 368 378 <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> 370 389 </th> 371 390 </tr> … … 413 432 </tr> 414 433 <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> 415 445 <th><?php esc_html_e( 'Clear all', 'wpc-product-options' ); ?></th> 416 446 <td> … … 424 454 <tr class="submit"> 425 455 <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> 427 466 </th> 428 467 </tr> -
wpc-product-options/trunk/includes/dashboard/css/dashboard.css
r3401724 r3486909 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-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 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-product-options/trunk/includes/dashboard/wpc-dashboard.php
r3401724 r3486909 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-product-options/trunk/languages/wpc-product-options.pot
r3476046 r3486909 3 3 msgid "" 4 4 msgstr "" 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" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpc-product-options\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: 2026-03- 06T03:32:59+00:00\n"12 "POT-Creation-Date: 2026-03-20T02:35:33+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 #: includes/class-backend.php:8 842 #: includes/class-backend.php:89 43 43 #: includes/templates/fields/color-picker.php:14 44 44 #: includes/templates/fields/date-picker.php:14 … … 54 54 msgstr "" 55 55 56 #: includes/class-backend.php: 8956 #: includes/class-backend.php:90 57 57 msgid "Description" 58 58 msgstr "" 59 59 60 #: includes/class-backend.php:9 060 #: includes/class-backend.php:91 61 61 msgid "Summary" 62 62 msgstr "" 63 63 64 #: includes/class-backend.php:9 164 #: includes/class-backend.php:92 65 65 msgid "Date" 66 66 msgstr "" 67 67 68 #: includes/class-backend.php:10 569 #: includes/class-backend.php:13 268 #: includes/class-backend.php:106 69 #: includes/class-backend.php:133 70 70 #: includes/templates/panel.php:9 71 71 msgid "Fields" 72 72 msgstr "" 73 73 74 #: includes/class-backend.php:10 674 #: includes/class-backend.php:107 75 75 #: includes/templates/configuration.php:10 76 76 msgid "Apply" 77 77 msgstr "" 78 78 79 #: includes/class-backend.php:11 580 #: includes/class-backend.php:2 3881 #: includes/class-backend.php:2 8582 #: includes/class-backend.php: 47879 #: includes/class-backend.php:116 80 #: includes/class-backend.php:248 81 #: includes/class-backend.php:295 82 #: includes/class-backend.php:517 83 83 msgid "Product Options" 84 84 msgstr "" 85 85 86 #: includes/class-backend.php:12 786 #: includes/class-backend.php:128 87 87 msgid "Configuration" 88 88 msgstr "" 89 89 90 #: includes/class-backend.php:2 3891 #: includes/class-backend.php:2 5290 #: includes/class-backend.php:248 91 #: includes/class-backend.php:262 92 92 msgid "WPC Product Options" 93 93 msgstr "" 94 94 95 #: includes/class-backend.php:2 5295 #: includes/class-backend.php:262 96 96 msgid "Premium" 97 97 msgstr "" 98 98 99 99 #. translators: stars 100 #: includes/class-backend.php:2 55100 #: includes/class-backend.php:265 101 101 #, php-format 102 102 msgid "Thank you for using our plugin! If you are satisfied, please reward it a full five-star %s rating." 103 103 msgstr "" 104 104 105 #: includes/class-backend.php:2 58105 #: includes/class-backend.php:268 106 106 msgid "Reviews" 107 107 msgstr "" 108 108 109 #: includes/class-backend.php:2 60109 #: includes/class-backend.php:270 110 110 msgid "Changelog" 111 111 msgstr "" 112 112 113 #: includes/class-backend.php:2 62113 #: includes/class-backend.php:272 114 114 msgid "Discussion" 115 115 msgstr "" 116 116 117 #: includes/class-backend.php:2 70117 #: includes/class-backend.php:280 118 118 msgid "Settings updated." 119 119 msgstr "" 120 120 121 #: includes/class-backend.php:2 77122 #: includes/class-backend.php: 477121 #: includes/class-backend.php:287 122 #: includes/class-backend.php:516 123 123 msgid "Settings" 124 124 msgstr "" 125 125 126 #: includes/class-backend.php:2 81127 #: includes/class-backend.php:3 78126 #: includes/class-backend.php:291 127 #: includes/class-backend.php:397 128 128 msgid "Localization" 129 129 msgstr "" 130 130 131 #: includes/class-backend.php: 290132 #: includes/class-backend.php: 479131 #: includes/class-backend.php:300 132 #: includes/class-backend.php:518 133 133 msgid "Premium Version" 134 134 msgstr "" 135 135 136 #: includes/class-backend.php: 293136 #: includes/class-backend.php:303 137 137 msgid "Essential Kit" 138 138 msgstr "" 139 139 140 #: includes/class-backend.php:3 09140 #: includes/class-backend.php:319 141 141 msgid "General" 142 142 msgstr "" 143 143 144 #: includes/class-backend.php:3 13144 #: includes/class-backend.php:323 145 145 msgid "Position" 146 146 msgstr "" 147 147 148 #: includes/class-backend.php:3 16148 #: includes/class-backend.php:326 149 149 msgid "Above the add to cart button" 150 150 msgstr "" 151 151 152 #: includes/class-backend.php:3 17152 #: includes/class-backend.php:327 153 153 msgid "Under the add to cart button" 154 154 msgstr "" 155 155 156 #: includes/class-backend.php:3 18156 #: includes/class-backend.php:328 157 157 msgid "None (Hide it)" 158 158 msgstr "" 159 159 160 #: includes/class-backend.php:3 20160 #: includes/class-backend.php:330 161 161 msgid "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." 162 162 msgstr "" 163 163 164 #: includes/class-backend.php:3 24164 #: includes/class-backend.php:334 165 165 msgid "Tooltip library" 166 166 msgstr "" 167 167 168 #: includes/class-backend.php:3 27168 #: includes/class-backend.php:337 169 169 msgid "Hint.css" 170 170 msgstr "" 171 171 172 #: includes/class-backend.php:3 28172 #: includes/class-backend.php:338 173 173 msgid "Tippy.js" 174 174 msgstr "" 175 175 176 #: includes/class-backend.php:3 29176 #: includes/class-backend.php:339 177 177 msgid "None (Disable)" 178 178 msgstr "" 179 179 180 #: includes/class-backend.php:3 38180 #: includes/class-backend.php:348 181 181 msgid "Summary of free options" 182 182 msgstr "" 183 183 184 #: includes/class-backend.php:341185 184 #: includes/class-backend.php:351 186 185 #: includes/class-backend.php:361 186 #: includes/class-backend.php:371 187 187 msgid "No" 188 188 msgstr "" 189 189 190 #: includes/class-backend.php:342191 190 #: includes/class-backend.php:352 192 191 #: includes/class-backend.php:362 192 #: includes/class-backend.php:372 193 193 msgid "Yes" 194 194 msgstr "" 195 195 196 #: includes/class-backend.php:3 44196 #: includes/class-backend.php:354 197 197 msgid "Display free options on the summary." 198 198 msgstr "" 199 199 200 #: includes/class-backend.php:3 48200 #: includes/class-backend.php:358 201 201 msgid "\"Clear all\" button" 202 202 msgstr "" 203 203 204 #: includes/class-backend.php:3 54204 #: includes/class-backend.php:364 205 205 msgid "Display the \"Clear all\" button to clear all selected options." 206 206 msgstr "" 207 207 208 #: includes/class-backend.php:3 58208 #: includes/class-backend.php:368 209 209 msgid "Change URL (Beta)" 210 210 msgstr "" 211 211 212 #: includes/class-backend.php:3 64212 #: includes/class-backend.php:374 213 213 msgid "Change the product URL based on selected options." 214 214 msgstr "" 215 215 216 #: includes/class-backend.php:3 80216 #: includes/class-backend.php:399 217 217 msgid "Leave blank to use the default text and its equivalent translation in multiple languages." 218 218 msgstr "" 219 219 220 #: includes/class-backend.php: 384220 #: includes/class-backend.php:403 221 221 msgid "Subtotal" 222 222 msgstr "" 223 223 224 #: includes/class-backend.php: 389224 #: includes/class-backend.php:408 225 225 #: includes/class-frontend.php:151 226 226 msgid "Subtotal:" 227 227 msgstr "" 228 228 229 #: includes/class-backend.php: 394230 #: includes/class-backend.php: 399229 #: includes/class-backend.php:413 230 #: includes/class-backend.php:418 231 231 msgid "Free" 232 232 msgstr "" 233 233 234 #: includes/class-backend.php:4 04234 #: includes/class-backend.php:423 235 235 msgid "Characters remaining" 236 236 msgstr "" 237 237 238 #: includes/class-backend.php:4 10238 #: includes/class-backend.php:429 239 239 #: includes/class-frontend.php:152 240 240 msgid "characters remaining" 241 241 msgstr "" 242 242 243 #: includes/class-backend.php:415 243 #: includes/class-backend.php:434 244 #: includes/class-backend.php:440 245 #: templates/fields/select.php:20 246 msgid "Select an option..." 247 msgstr "" 248 249 #: includes/class-backend.php:445 244 250 msgid "Clear all" 245 251 msgstr "" 246 252 247 #: includes/class-backend.php:4 20253 #: includes/class-backend.php:450 248 254 #: includes/class-frontend.php:150 249 255 msgid "Clear all options" 250 256 msgstr "" 251 257 252 #: includes/class-backend.php: 495258 #: includes/class-backend.php:534 253 259 msgid "Community support" 254 260 msgstr "" 255 261 256 #: includes/class-backend.php:6 45262 #: includes/class-backend.php:684 257 263 msgctxt "Post Type General Name" 258 264 msgid "Product Options" 259 265 msgstr "" 260 266 261 #: includes/class-backend.php:6 46267 #: includes/class-backend.php:685 262 268 msgctxt "Post Type Singular Name" 263 269 msgid "Product Option" 264 270 msgstr "" 265 271 266 #: includes/class-backend.php:6 47272 #: includes/class-backend.php:686 267 273 msgid "Add New Product Option" 268 274 msgstr "" 269 275 270 #: includes/class-backend.php:6 48276 #: includes/class-backend.php:687 271 277 msgid "Add New" 272 278 msgstr "" 273 279 274 #: includes/class-backend.php:6 49280 #: includes/class-backend.php:688 275 281 msgid "Edit Product Option" 276 282 msgstr "" 277 283 278 #: includes/class-backend.php:6 50284 #: includes/class-backend.php:689 279 285 msgid "Update Product Option" 280 286 msgstr "" 281 287 282 #: includes/class-backend.php:6 51288 #: includes/class-backend.php:690 283 289 msgid "Search Product Option" 284 290 msgstr "" 285 291 286 #: includes/class-backend.php:6 55292 #: includes/class-backend.php:694 287 293 msgid "Product Option" 288 294 msgstr "" 289 295 290 #: includes/class-backend.php:7 48296 #: includes/class-backend.php:787 291 297 msgid "Before wrapper" 292 298 msgstr "" 293 299 294 #: includes/class-backend.php:7 49300 #: includes/class-backend.php:788 295 301 msgid "After wrapper" 296 302 msgstr "" 297 303 298 #: includes/class-backend.php:7 50304 #: includes/class-backend.php:789 299 305 msgid "Before options" 300 306 msgstr "" 301 307 302 #: includes/class-backend.php:7 51308 #: includes/class-backend.php:790 303 309 msgid "After options" 304 310 msgstr "" … … 784 790 msgid "(%1$s - %2$s)" 785 791 msgstr "" 786 787 #: templates/fields/select.php:20788 msgid "Select an option..."789 msgstr "" -
wpc-product-options/trunk/readme.txt
r3476046 r3486909 5 5 Requires at least: 4.0 6 6 Tested up to: 6.9 7 Version: 3.1. 38 Stable tag: 3.1. 37 Version: 3.1.4 8 Stable tag: 3.1.4 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 92 92 == Changelog == 93 93 94 = 3.1.4 = 95 * Fixed: Minor CSS/JS issues in the backend 96 * Updated: Compatible with WP 6.9 & Woo 10.6 97 94 98 = 3.1.3 = 95 99 * Fixed: Vulnerability issue reported by Patchstack team -
wpc-product-options/trunk/templates/fields/select.php
r3467249 r3486909 18 18 id="<?php echo esc_attr( $key ); ?>" 19 19 data-title="<?php echo esc_attr( $field['title'] ); ?>" <?php echo esc_attr( ! empty( $field['required'] ) ? 'required' : '' ); ?>> 20 <option value=""><?php e sc_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> 21 21 <?php foreach ( $field['options'] as $option_key => $option ) { 22 22 if ( isset( $option['value'] ) && $option['value'] !== '' ) { -
wpc-product-options/trunk/wpc-product-options.php
r3476046 r3486909 4 4 Plugin URI: https://wpclever.net/ 5 5 Description: WPC Product Options brings about the power of adjusting prices with highly customizable additional fields for products. 6 Version: 3.1. 36 Version: 3.1.4 7 7 Author: WPClever 8 8 Author URI: https://wpclever.net … … 13 13 Tested up to: 6.9 14 14 WC requires at least: 3.0 15 WC tested up to: 10. 515 WC tested up to: 10.6 16 16 */ 17 17 18 ! defined( 'WPCPO_VERSION' ) && define( 'WPCPO_VERSION', '3.1. 3' );18 ! defined( 'WPCPO_VERSION' ) && define( 'WPCPO_VERSION', '3.1.4' ); 19 19 ! defined( 'WPCPO_LITE' ) && define( 'WPCPO_LITE', __FILE__ ); 20 20 ! defined( 'WPCPO_FILE' ) && define( 'WPCPO_FILE', __FILE__ ); … … 27 27 ! defined( 'WPC_URI' ) && define( 'WPC_URI', WPCPO_URI ); 28 28 29 include 'includes/log/wpc-log.php'; 29 30 include 'includes/dashboard/wpc-dashboard.php'; 30 31 include 'includes/kit/wpc-kit.php';
Note: See TracChangeset
for help on using the changeset viewer.