From 74c14581f177e24192e5bdeb75957f6cf2be92e5 Mon Sep 17 00:00:00 2001 From: magdev Date: Sun, 25 Jan 2026 19:39:12 +0100 Subject: [PATCH] Release version 1.3.0 - License management and settings sub-tabs Breaking Changes: - PHP 8.3+ now required (previously 7.4+) Added: - License management integration using magdev/wc-licensed-product-client - Settings page split into General and License sub-tabs - License validation and activation via AJAX - PHP version check with admin notice Changed: - Refactored settings class to use modern WooCommerce patterns - Updated all translations with new license-related strings Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 39 ++ CLAUDE.md | 20 +- assets/css/admin.css | 49 ++ composer.json | 13 +- includes/class-wc-tpp-settings.php | 422 ++++++++++++++++-- languages/wc-tier-package-prices-de_CH.mo | Bin 6529 -> 8529 bytes languages/wc-tier-package-prices-de_CH.po | 100 +++++ .../wc-tier-package-prices-de_CH_informal.mo | Bin 6514 -> 8500 bytes .../wc-tier-package-prices-de_CH_informal.po | 100 +++++ languages/wc-tier-package-prices-de_DE.mo | Bin 6497 -> 8497 bytes languages/wc-tier-package-prices-de_DE.po | 100 +++++ .../wc-tier-package-prices-de_DE_informal.mo | Bin 6481 -> 8467 bytes .../wc-tier-package-prices-de_DE_informal.po | 100 +++++ languages/wc-tier-package-prices-en_US.mo | Bin 6331 -> 8219 bytes languages/wc-tier-package-prices-en_US.po | 100 +++++ languages/wc-tier-package-prices-fr_CH.mo | Bin 7094 -> 9110 bytes languages/wc-tier-package-prices-fr_CH.po | 100 +++++ languages/wc-tier-package-prices-it_CH.mo | Bin 6837 -> 8808 bytes languages/wc-tier-package-prices-it_CH.po | 100 +++++ languages/wc-tier-package-prices.pot | 100 +++++ wc-tier-and-package-prices.php | 29 +- 21 files changed, 1310 insertions(+), 62 deletions(-) mode change 100644 => 100755 includes/class-wc-tpp-settings.php mode change 100644 => 100755 wc-tier-and-package-prices.php diff --git a/CHANGELOG.md b/CHANGELOG.md index a961a78..da31509 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,45 @@ All notable changes to WooCommerce Tier and Package Prices will be documented in The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.0] - 2026-01-25 + +### Breaking Changes + +- **PHP 8.3 Required**: Minimum PHP version increased from 7.4 to 8.3 to support modern dependencies and the license client library. Users on older PHP versions will see an admin notice and the plugin will not load. + +### Added + +- **License Management**: Integrated `magdev/wc-licensed-product-client` library for license validation and activation + - New "License" settings tab for entering license server URL and license key + - License validation and activation via AJAX with visual feedback + - License status display showing active/inactive state, expiration date, and last check time + - Cached license status with daily auto-refresh + +- **Settings Page Sub-tabs**: Split the settings page into "General" and "License" tabs using modern WooCommerce patterns + - Refactored to use `get_own_sections()` and `get_settings_for_{section}_section()` methods + - Improved navigation and organization of settings + +- **PHP Version Check**: Added runtime PHP version validation with admin notice for incompatible servers + +### Changed + +- Updated composer.json to require PHP 8.3+ and added `magdev/wc-licensed-product-client` dependency +- Settings class now uses modern WooCommerce settings API patterns + +### Technical Details + +**New Dependencies**: +- `magdev/wc-licensed-product-client: ^0.1` (from private repository) +- `symfony/http-client: ^7.0` (transitive) +- `psr/log: ^3.0`, `psr/cache: ^3.0`, `psr/http-client: ^1.0` (transitive) + +**License Client Integration**: +- Uses `LicenseClient` class for API communication +- AJAX endpoints: `wc_tpp_validate_license`, `wc_tpp_activate_license` +- License status cached in WordPress transient (`wc_tpp_license_status`) + +--- + ## [1.2.9] - 2025-12-30 ### Fixed diff --git a/CLAUDE.md b/CLAUDE.md index cba92e7..eb7e6ce 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # WooCommerce Tier and Package Prices - AI Context Document -**Last Updated:** 2025-12-30 -**Current Version:** 1.2.9 +**Last Updated:** 2026-01-25 +**Current Version:** 1.3.0 **Author:** Marco Graetsch **Project Status:** Production-ready WordPress plugin @@ -18,16 +18,15 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w ## Temporary Roadmap -**Note for AI Assistants:** Clean this section after the specific features are done or new releases are made. Effective changes are tracked in `CHANGELOG.md`. Do not add completed versions here - document them in the Session History section at the end of this file. +**Note for AI Assistants:** Clean this section after the specific features are done or new releases are made. Effective changes are tracked in `CHANGELOG.md`. Do not add completed versions here - document them in the Session History section at the end of this file. Always keep the `Known Bugs` section and create a section with the next bugfix and minor version after a release. -### Version 1.3.0 +### Version 1.3.1 -- Implement `https://src.bundespruefstelle.ch/magdev/wc-licensed-product-client/raw/branch/main/docs/client-implementation.md`. Add the license management to the settings page -- Split the settings page into sub-tabs, like in the WooCommerce Advanced tab +- TBD ## Technical Stack -- **Language:** PHP 7.4+ +- **Language:** PHP 8.3+ - **Framework:** WordPress Plugin API - **E-commerce:** WooCommerce 8.0+ (tested up to 10.x) - **Template Engine:** Twig 3.0 (via Composer) @@ -41,8 +40,11 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w ```json { "twig/twig": "^3.0", - "symfony/polyfill-ctype": "^1.x", - "symfony/polyfill-mbstring": "^1.x" + "magdev/wc-licensed-product-client": "^0.1", + "symfony/http-client": "^7.0", + "psr/log": "^3.0", + "psr/cache": "^3.0", + "psr/http-client": "^1.0" } ``` diff --git a/assets/css/admin.css b/assets/css/admin.css index d211170..c190261 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -154,3 +154,52 @@ label[for^="wc_tpp_restrict_to_packages_"] { input[id^="wc_tpp_restrict_to_packages_"] + .description { display: none; } + +/* License Status Styling */ +.wc-tpp-license-active { + color: #46b450; + font-weight: 600; +} + +.wc-tpp-license-inactive { + color: #dc3232; + font-weight: 600; +} + +.wc-tpp-license-expired { + color: #ffb900; + font-weight: 600; +} + +#wc-tpp-license-spinner { + float: none; + margin-top: 0; + vertical-align: middle; +} + +#wc-tpp-validate-license, +#wc-tpp-activate-license { + margin-right: 8px; +} + +#wc-tpp-license-status-container { + margin-bottom: 10px; + padding: 10px 15px; + background: #f9f9f9; + border-left: 4px solid #ccc; + border-radius: 2px; +} + +#wc-tpp-license-status-container.valid { + border-left-color: #46b450; + background: #f0fff0; +} + +#wc-tpp-license-status-container.invalid { + border-left-color: #dc3232; + background: #fff0f0; +} + +#wc-tpp-license-status-container small { + color: #666; +} diff --git a/composer.json b/composer.json index f869819..ea78249 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "magdev/wc-tier-package-prices", "description": "WooCommerce plugin for tier pricing and package prices with Twig templates", - "version": "1.2.9", + "version": "1.3.0", "type": "wordpress-plugin", "license": "GPL-2.0-or-later", "authors": [ @@ -10,9 +10,16 @@ "homepage": "https://src.bundespruefstelle.ch/magdev" } ], + "repositories": [ + { + "type": "vcs", + "url": "https://src.bundespruefstelle.ch/magdev/wc-licensed-product-client.git" + } + ], "require": { - "php": ">=7.4", - "twig/twig": "^3.0" + "php": ">=8.3", + "twig/twig": "^3.0", + "magdev/wc-licensed-product-client": "^0.1" }, "autoload": { "classmap": [ diff --git a/includes/class-wc-tpp-settings.php b/includes/class-wc-tpp-settings.php old mode 100644 new mode 100755 index 5cfdd12..c962cf8 --- a/includes/class-wc-tpp-settings.php +++ b/includes/class-wc-tpp-settings.php @@ -2,7 +2,7 @@ /** * WooCommerce Settings Integration * - * Adds Tier & Package Prices settings to WooCommerce Settings > Advanced tab + * Adds Tier & Package Prices settings to WooCommerce Settings with sub-tabs * * @package WC_Tier_Package_Prices */ @@ -21,40 +21,39 @@ if (!class_exists('WC_Settings_Page')) { if (!class_exists('WC_TPP_Settings')) { class WC_TPP_Settings extends WC_Settings_Page { - /** - * Constructor - */ - public function __construct() { - $this->id = 'tier_package_prices'; - $this->label = __('Tier & Package Prices', 'wc-tier-package-prices'); + /** + * Constructor + */ + public function __construct() { + $this->id = 'tier_package_prices'; + $this->label = __('Tier & Package Prices', 'wc-tier-package-prices'); - parent::__construct(); - } + parent::__construct(); - /** - * Get sections - * - * @return array - */ - public function get_sections() { - $sections = array( - '' => __('General', 'wc-tier-package-prices'), - ); + // Add AJAX handlers for license validation + add_action('wp_ajax_wc_tpp_validate_license', array($this, 'ajax_validate_license')); + add_action('wp_ajax_wc_tpp_activate_license', array($this, 'ajax_activate_license')); + } - return apply_filters('woocommerce_get_sections_' . $this->id, $sections); - } + /** + * Get own sections - Modern WooCommerce pattern + * + * @return array + */ + protected function get_own_sections() { + return array( + '' => __('General', 'wc-tier-package-prices'), + 'license' => __('License', 'wc-tier-package-prices'), + ); + } - /** - * Get settings array - * - * @param string $current_section Current section name. - * @return array - */ - public function get_settings($current_section = '') { - $settings = array(); - - if ('' === $current_section) { - $settings = array( + /** + * Get settings for the default (General) section + * + * @return array + */ + protected function get_settings_for_default_section() { + return array( array( 'title' => __('Tier & Package Prices Settings', 'wc-tier-package-prices'), 'type' => 'title', @@ -121,23 +120,352 @@ if (!class_exists('WC_TPP_Settings')) { ); } - return apply_filters('woocommerce_get_settings_' . $this->id, $settings, $current_section); - } + /** + * Get settings for the License section + * + * @return array + */ + protected function get_settings_for_license_section() { + return array( + array( + 'title' => __('License Management', 'wc-tier-package-prices'), + 'type' => 'title', + 'desc' => __('Enter your license key to receive updates and support.', 'wc-tier-package-prices'), + 'id' => 'wc_tpp_license_settings', + ), - /** - * Output the settings - */ - public function output() { - $settings = $this->get_settings(); - WC_Admin_Settings::output_fields($settings); - } + array( + 'title' => __('License Server URL', 'wc-tier-package-prices'), + 'desc' => __('The URL of the license server.', 'wc-tier-package-prices'), + 'id' => 'wc_tpp_license_server_url', + 'type' => 'url', + 'default' => '', + 'css' => 'min-width:400px;', + 'desc_tip' => true, + ), - /** - * Save settings - */ - public function save() { - $settings = $this->get_settings(); - WC_Admin_Settings::save_fields($settings); + array( + 'title' => __('License Key', 'wc-tier-package-prices'), + 'desc' => __('Your license key for this plugin.', 'wc-tier-package-prices'), + 'id' => 'wc_tpp_license_key', + 'type' => 'text', + 'default' => '', + 'css' => 'min-width:400px;', + 'desc_tip' => true, + ), + + array( + 'title' => __('License Status', 'wc-tier-package-prices'), + 'type' => 'wc_tpp_license_status', + 'id' => 'wc_tpp_license_status_display', + ), + + array( + 'type' => 'sectionend', + 'id' => 'wc_tpp_license_settings', + ), + ); + } + + /** + * Get cached license status + * + * @return array|false + */ + private function get_cached_license_status() { + return get_transient('wc_tpp_license_status'); + } + + /** + * AJAX handler for license validation + */ + public function ajax_validate_license() { + check_ajax_referer('wc_tpp_license_nonce', 'nonce'); + + if (!current_user_can('manage_woocommerce')) { + wp_send_json_error(array('message' => __('Permission denied.', 'wc-tier-package-prices'))); + } + + $license_key = sanitize_text_field(wp_unslash($_POST['license_key'] ?? '')); + $server_url = esc_url_raw(wp_unslash($_POST['server_url'] ?? '')); + + if (empty($license_key) || empty($server_url)) { + wp_send_json_error(array('message' => __('License key and server URL are required.', 'wc-tier-package-prices'))); + } + + try { + $client = $this->get_license_client($server_url); + $domain = $this->get_current_domain(); + $result = $client->validate($license_key, $domain); + + // Cache the status + set_transient('wc_tpp_license_status', array( + 'valid' => true, + 'product_id' => $result->productId, + 'expires_at' => $result->expiresAt?->format('Y-m-d H:i:s'), + 'is_lifetime' => $result->isLifetime(), + 'checked_at' => current_time('mysql'), + ), DAY_IN_SECONDS); + + wp_send_json_success(array( + 'message' => __('License is valid!', 'wc-tier-package-prices'), + 'status' => $this->get_cached_license_status(), + )); + + } catch (\Magdev\WcLicensedProductClient\Exception\LicenseException $e) { + delete_transient('wc_tpp_license_status'); + wp_send_json_error(array( + 'message' => $e->getMessage(), + 'code' => $e->errorCode ?? 'unknown', + )); + } catch (\Exception $e) { + delete_transient('wc_tpp_license_status'); + wp_send_json_error(array( + 'message' => $e->getMessage(), + 'code' => 'exception', + )); + } + } + + /** + * AJAX handler for license activation + */ + public function ajax_activate_license() { + check_ajax_referer('wc_tpp_license_nonce', 'nonce'); + + if (!current_user_can('manage_woocommerce')) { + wp_send_json_error(array('message' => __('Permission denied.', 'wc-tier-package-prices'))); + } + + $license_key = sanitize_text_field(wp_unslash($_POST['license_key'] ?? '')); + $server_url = esc_url_raw(wp_unslash($_POST['server_url'] ?? '')); + + if (empty($license_key) || empty($server_url)) { + wp_send_json_error(array('message' => __('License key and server URL are required.', 'wc-tier-package-prices'))); + } + + try { + $client = $this->get_license_client($server_url); + $domain = $this->get_current_domain(); + $result = $client->activate($license_key, $domain); + + if ($result->success) { + // Validate to get full status after activation + $validate_result = $client->validate($license_key, $domain); + + set_transient('wc_tpp_license_status', array( + 'valid' => true, + 'product_id' => $validate_result->productId, + 'expires_at' => $validate_result->expiresAt?->format('Y-m-d H:i:s'), + 'is_lifetime' => $validate_result->isLifetime(), + 'checked_at' => current_time('mysql'), + ), DAY_IN_SECONDS); + + wp_send_json_success(array( + 'message' => __('License activated successfully!', 'wc-tier-package-prices'), + 'status' => $this->get_cached_license_status(), + )); + } + + wp_send_json_error(array('message' => $result->message)); + + } catch (\Magdev\WcLicensedProductClient\Exception\LicenseException $e) { + wp_send_json_error(array( + 'message' => $e->getMessage(), + 'code' => $e->errorCode ?? 'unknown', + )); + } catch (\Exception $e) { + wp_send_json_error(array( + 'message' => $e->getMessage(), + 'code' => 'exception', + )); + } + } + + /** + * Get license client instance + * + * @param string $server_url License server URL. + * @return \Magdev\WcLicensedProductClient\LicenseClientInterface + */ + private function get_license_client(string $server_url): \Magdev\WcLicensedProductClient\LicenseClientInterface { + $httpClient = \Symfony\Component\HttpClient\HttpClient::create(); + return new \Magdev\WcLicensedProductClient\LicenseClient( + httpClient: $httpClient, + baseUrl: $server_url, + ); + } + + /** + * Get current domain for license validation + * + * @return string + */ + private function get_current_domain(): string { + return wp_parse_url(home_url(), PHP_URL_HOST); + } + + /** + * Output the settings + */ + public function output() { + global $current_section; + + // Register custom field type for license status display + add_action('woocommerce_admin_field_wc_tpp_license_status', array($this, 'output_license_status_field')); + + parent::output(); + + // Add JavaScript for license section + if ('license' === $current_section) { + $this->output_license_scripts(); + } + } + + /** + * Output license status custom field + * + * @param array $value Field configuration. + */ + public function output_license_status_field($value) { + $status = $this->get_cached_license_status(); + ?> + + + + + +
+ render_license_status_html($status); ?> +
+

+ + + +

+ + + ' . esc_html__('No license activated', 'wc-tier-package-prices') . ''; + return; + } + + if (!empty($status['valid'])) { + echo '' . esc_html__('License Active', 'wc-tier-package-prices') . ''; + if (!empty($status['expires_at']) && empty($status['is_lifetime'])) { + echo '
' . sprintf( + /* translators: %s: Expiration date */ + esc_html__('Expires: %s', 'wc-tier-package-prices'), + esc_html($status['expires_at']) + ) . ''; + } elseif (!empty($status['is_lifetime'])) { + echo '
' . esc_html__('Lifetime License', 'wc-tier-package-prices') . ''; + } + if (!empty($status['checked_at'])) { + echo '
' . sprintf( + /* translators: %s: Last check timestamp */ + esc_html__('Last checked: %s', 'wc-tier-package-prices'), + esc_html($status['checked_at']) + ) . ''; + } + } else { + echo '' . esc_html__('License Invalid', 'wc-tier-package-prices') . ''; + } + } + + /** + * Output JavaScript for license management + */ + private function output_license_scripts() { + $nonce = wp_create_nonce('wc_tpp_license_nonce'); + ?> + + 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˰i&rk@^Dc^tNu{zl&|dFH zHa&7>Mp33AwKun3=!p7sLS%&;uNGbG&#g!};m`T8J)L+#?8iQeAX32<{lL|O?%}@s zs%-_^-qgR-{m@Yt&iPR!MVmc+b0eQrR4cR?%cq&zwX$IP_|mMaoM#uXzrV?gnT^c8w6RS((sh*7; zLsR2Zb|g1!tD!CXrLqfi_S349%ts^*lOXVelGVz=C}-;X*6*l)yZ69Ax^9*8w#X)N znOEj3NlA|WrnkRy?}WePf+g#nqF8+wy1*RDx(T}$UAaoOtWI`Qes_L_9`(unTf{tlVWVWSru!2xbJZ7 z!KC8irP!9-eArkn##t51JqlsP%hmw@8q1Z~FJ%)eUSty#>={mDU28>}*}cso)`n55 zgc;P9@UB>`ltSm{%WXkom1}yqPu8;&TXQQ%+BDGi{xFIu7m|fC5xZGF0~IeQ zsh+i^nRE;S8<0`2{-wTqw;Y$O+0zvlO#PP4yXt@G+xeLXlTzpxi&mjIzvT2C81rL3 zG9{7{RnJt*6yKSDqsa$PJ znv3Vcz$J0++-QGS=XE-uz+_eqsSHuBKDy=EeVKTT+}Yoqb)aHOz*&9{IxU9dzwlS6kKyDwRHaaaCf>O^Jb+ui;d+_>O{CY)w~4t IJvWU12OsjUjQ{`u delta 1441 zcmYk+OGs2v9LMo9I%Pgar*X=3e2iL_k9>^QXldXhtPCqM!5(C&Dd8e2D03kaZgLY{ zf`VFDw2<13NRNeWa#2tQZd_DU5CdjHk6lvV-<>OT@IRk(AKvpn=YQ^YD^Fym$V@xvE;X2%l>#-d-VYhRA2nRSG!#@0uKI~X)OeXeY07r2* z-oxw0jF<&FM>x@&U`!QGV>d?8i~AXM10Kg(JdYc364UVoZo_#D;tDF^+(ct|gegHi zC*;_S5QtGl_Iy819%C$Z~)(+N)qOu zbFdwC{~)&DINrxOY{QFWQ;jn|)?YLK$qCKq7^7+h`Y?>cs0T+-o9z`A;}drHg4H)Gs3l7z3)R|>ByF;s<1*BMA=KMa zk6W<|Sp+kR7T&}QSVT7ccn5c(i>!LF9+l|C2%XJzo}dzWk9yFebNmODc@ooqfElRQ z>p3cseBLeX@>0}sHLBJPs0kfL)%ql=bUjF=?b*}S{*Mi;*k_cK9;Csl z2-UZcV50W>4EE-$!+K&nkx!^;g;twZK~1Ymg7*0Ki7bBIgzBtTL+l{<9@&{|W2uE> z*!3@`uUWGl>{&aP%uYI$gi5#CO6ceVR7_M8AtJ*x#g2ol-@1%yhIN2qNf z*dBJ>Dp2)Ti`-548gIQ!4qKm64q8o~Q&!Yd6sb&|cUgtriAdC&=CV3{Rgp=bKQ6N9 tZ*^N^na$R-tV32X&~CjB6kE;NfkXD zv+xJ-RX7K}1sB5K+WWtQF5_>Yfx|p3@1KN=;D>ODZ1o2^w=Ls8}lC=MNivd_mb3(vtek$QG}?Z#5r z!FUZ^3%5glD&!&?KV-*`L)rK_xB1r)gRqRL zaW0ea5md zNhsqpP-^4?TmZl8K!1r~F5!q0JurZGLKnUPrMMPyxgM^CH^M>K50Ao^;VJkdm}Avm zcpQpS7okMl&(UBhbr5cXCCDr4NJ;C@C&#SW;i3VK{q6gDuf&e^^oObP!@Os zvWI#N5|pY!QRGV~ihK=GUH#GWpO&*0*XGNebmYNXp+vX^ibOw!>tG3@rg{;shwngn z{*vY2p*Yfl&QerMpg6n($|)I!lDflC*7e|C_zOtUmeogeBsZVcCe(Q-kzRru;kQse zOt)~k3GRjx(HMLhJ`8=h81H`uABCIYd5CYSll*#cGZaT(g3IA4*e>V)93AoO&rlS& zg2O8tXeg2NK#6!Od<71``{Cc=0`EdTdg>CCK>h+n!OKt-nN4L&ik84x zWjf2~WS}&WY5?oSwqo@r#VLg}y=}9Ddtg6yryUEV7)3p4qJp#*Oca!csA=Jshv{s= z_F%iQJFp>4QX);1k#;vG1-1+mHP&KM(YIsLZo@RT0lOI!<)mGS?MQpIsHLW|m?(6M zmkel9xY7o()z~JC?9tF) zieV+j$w)swoWQg~e+VUilGFd!?&YTBRoZ?`ii|(e^pgzI??sPvXe(++|KOy%9SPEE zRoim0H}1qn4|q8fM5aFBl>%LGJm2KA$NOenxN_UhAU2_%C?%oxYme$9W_oB7xh8kS48MxsnZYAmju&=B>}gvjz)UM-l|8*NHB;Ej5*KAJc|?8P36AX45Gyueg~ z*4~c2rG|nHZz?ae9^PfbQ7?)_`Me1{S$fDfPGmGO64pp5b{lU-)4W0NX(`E8F1L1f z9!(5V+YD;EP8t-u|oq24TgY?r&<3Md zHYc-gX!nrr%l7J0s9mqr)WC^7-ujEkD_1 zMogghc}DlUyr64K$V1hsC^Eh_Ua(pxqk6wB+XNZ+)yh^+CfbCqFJW8I&jSu2Axeq49EVLzP%+Hr?DK^>)YlTysmE2HIF(M;?L8dSTv#q{1a) z(Ju0xpeRKxOR7P`AkYD6bt)4bcP-e1e)YRe7gVKdUU%hu$I6jINip;a1udZ&uW00B zu-%LK(i9t+iAoQYTwmu&l1)$3Eyw3ek`Nwep?>#2l9#Qt&cAs>PzXu-f0ux+?Zn=k za@W=Y2hoIqN#gABp85aCTqo6^XL9=1QMR&T!8<)x$LiFG3DXo)an)z)ga1`?XBV_& zdeZt%PXbbEw|XKy3)G*sU#3)yAa7!O5-P7R9PO6-)`w<*h3Zr&!bCVYR67clMT>U- E8{*Hfb^rhX delta 1442 zcmYk+OGs2v9LMo9jcLB8X-b{(F^)B$jsd)k zoAEB*FlNBa(%H?4qbbJJ;3Rfq96i|1s4HCvr?3=fFo+ANgbP!R;TEPG zb)QlxoXqjOjnP&4h!NZhCo`IwuIL#UbDMdGpe7 z78%RDN0s8Mb6!~~;Zz*pzs5u7vCEhORBc~#cP(ukbMOypWPcec$WK)L|Ue;eT|HKK#FddAl73jhSJd1X%QJZZF%WxLM==L!S zEO)F&{k{d2_&%)1Q>cmFa~wmJ=!uW@XI0DxPH5BoKrPu{RISsC-bZ%k+E{80 z3GDh;($}on4)&~_OJ*aTYC@%3Y~^(H0xBcwh*~1Yv?i8UZ@+a!BM~IDv>`&JDI(O? z5Nr#(ZdIuItHti5d~{pS(;KY0jGb0%=0Pi-8IDzF&A6-*&u}d6$#z+t-kR8`cfl2# v@kNuYOL=Y9gg;^x<(67)fv`0lD2r9(|8iL^g%4xFBDc%B8f>;c2Y37fbx(*> diff --git a/languages/wc-tier-package-prices-de_DE.po b/languages/wc-tier-package-prices-de_DE.po index f2c578e..2f1d9ce 100644 --- a/languages/wc-tier-package-prices-de_DE.po +++ b/languages/wc-tier-package-prices-de_DE.po @@ -277,3 +277,103 @@ msgstr "Preis" #: includes/class-wc-tpp-product-meta.php:165 msgid "Label (optional)" msgstr "Beschriftung (optional)" + +#: wc-tier-and-package-prices.php +msgid "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." +msgstr "WooCommerce Staffel- und Paketpreise erfordert PHP 8.3 oder höher. Ihr Server verwendet PHP %s." + +#: includes/class-wc-tpp-settings.php +msgid "License" +msgstr "Lizenz" + +#: includes/class-wc-tpp-settings.php +msgid "License Management" +msgstr "Lizenzverwaltung" + +#: includes/class-wc-tpp-settings.php +msgid "Enter your license key to receive updates and support." +msgstr "Geben Sie Ihren Lizenzschlüssel ein, um Updates und Support zu erhalten." + +#: includes/class-wc-tpp-settings.php +msgid "License Server URL" +msgstr "Lizenzserver-URL" + +#: includes/class-wc-tpp-settings.php +msgid "The URL of the license server." +msgstr "Die URL des Lizenzservers." + +#: includes/class-wc-tpp-settings.php +msgid "License Key" +msgstr "Lizenzschlüssel" + +#: includes/class-wc-tpp-settings.php +msgid "Your license key for this plugin." +msgstr "Ihr Lizenzschlüssel für dieses Plugin." + +#: includes/class-wc-tpp-settings.php +msgid "License Status" +msgstr "Lizenzstatus" + +#: includes/class-wc-tpp-settings.php +msgid "Validate License" +msgstr "Lizenz überprüfen" + +#: includes/class-wc-tpp-settings.php +msgid "Activate License" +msgstr "Lizenz aktivieren" + +#: includes/class-wc-tpp-settings.php +msgid "No license activated" +msgstr "Keine Lizenz aktiviert" + +#: includes/class-wc-tpp-settings.php +msgid "License Active" +msgstr "Lizenz aktiv" + +#: includes/class-wc-tpp-settings.php +msgid "License Invalid" +msgstr "Lizenz ungültig" + +#: includes/class-wc-tpp-settings.php +msgid "Lifetime License" +msgstr "Lebenslange Lizenz" + +#: includes/class-wc-tpp-settings.php +msgid "Expires: %s" +msgstr "Läuft ab: %s" + +#: includes/class-wc-tpp-settings.php +msgid "Last checked: %s" +msgstr "Zuletzt geprüft: %s" + +#: includes/class-wc-tpp-settings.php +msgid "License is valid!" +msgstr "Lizenz ist gültig!" + +#: includes/class-wc-tpp-settings.php +msgid "License activated successfully!" +msgstr "Lizenz erfolgreich aktiviert!" + +#: includes/class-wc-tpp-settings.php +msgid "Permission denied." +msgstr "Zugriff verweigert." + +#: includes/class-wc-tpp-settings.php +msgid "License key and server URL are required." +msgstr "Lizenzschlüssel und Server-URL sind erforderlich." + +#: includes/class-wc-tpp-settings.php +msgid "Please enter both license server URL and license key." +msgstr "Bitte geben Sie sowohl die Lizenzserver-URL als auch den Lizenzschlüssel ein." + +#: includes/class-wc-tpp-settings.php +msgid "Validation failed." +msgstr "Überprüfung fehlgeschlagen." + +#: includes/class-wc-tpp-settings.php +msgid "Activation failed." +msgstr "Aktivierung fehlgeschlagen." + +#: includes/class-wc-tpp-settings.php +msgid "Request failed. Please try again." +msgstr "Anfrage fehlgeschlagen. Bitte versuchen Sie es erneut." diff --git a/languages/wc-tier-package-prices-de_DE_informal.mo b/languages/wc-tier-package-prices-de_DE_informal.mo index de3b66bd805f2d8e85c1eb8e78ebaef6138a939a..fd641fb816ceaa249050aeb1384addbf7023e8ab 100644 GIT binary patch delta 3373 zcmaKtU2GiH700h3hC0{@0Xv3}HrEh`gpduk`7oh0#3UpkHZ?Yh6of*?yLWe|8P7WN zVPb>2Z6#ERmm&>_J``F$6vP7(5EK!~L~55W5u|{KfFKcgAUHwlLxG1@favec++AA; zakXcD_uiSg_niMZclN#BWT1NLq6LpC+AeH4_RcvNK63m}qKYadA8P2p>*1duKXt_Nb$Gsn`W_uw_@w2Rmfxli zDAn4k)FSS;!^Q9l$Su_eC8CX%BT$|*a0QH@DDwyuhYmv7=Qzy4&tR)ay|^vAu^hHD zUI*910mx4UTx8=v*zva4R9{<^npM#`Xy#)EGSMB_}P$E1D#evV@u_hFNBK;BMq{!4U zDC1cuHS#~$3EMi*Un1xx98qF3^x-Hh!+$|3uC-i#2?wA&zZY(XRrnNq4eo#?R_%j_ zpeQv9CF1QI4VF^7;SI0?c||>2rNd7h<+28T2v@--&WLQV8j?me4ml9&e#-};Ebte| z9_k<@D0LKyBJV>{K?0HkQE>YsEZH*aPW>Lip%KZQN;ER+w^ zWn8X={ZJy>3lq2>daxPq?|}i_0FOg_QVYpf0d_-i^dYzsJ_+08{J%j*JUanJfiqAx zIFCatk#s_dxEnqVd!gj^19&g&*O|kAg_6RjARj&T4wOJnKvD1%6h;06B}L!EMO8Wr zD0PZ9Z6ehm)`x9OXR?bFrxeosw#g1|hug7R>{#$y?0P#E6{Ib|L_ukYnig_(gwD;F zRIlXa*Vr&7DUl}1NV^S_0=pa&HP&NN(KlhzZp1Wp9d;Ea%1JvHlR}mzQAm^Twi1Rb=*p4ogIk8(j-;Vr1}vsmAGFfXj?Ez;Z_;Yq;RDTVOL{v1Xp0P ze_9Ny=yEdBkB=P3JFwqil0T{HpKEtk-3RzlrhV&0kx&ug% zR;${SkK9QoGJ4R>8$UGl3Af_wqT_m|kUP}h{KdJOw)l|=^i(Adw3j`q_n9djRditT z#+@`eo+z+Ts2#tc!+2t%5=1$*<-mj+m~eycPL{XaSarfk=gTI)&lH#nRee`Wow{S{ z(|Wr<>3D9TG2UUO8vP;1cS>g5_)%kO)C7|_xpQQ2ZYpx3xUo-FJ2qZ%F`qYKSd2Yy zs;lw58|rk+xfzKv4XLrXb^=4x`(q+2iIK3zDp9%dW;o9q^q!ZJT=HGZ z>J|HAgVZ*I+O87?gi>-`KX<5W;fGDj5K32yIx3sS0@=E`)4QcktdB?<#J=zPB`r^OhdGt>ELxfTy=_BR`rJI{ zb&*A)GOtW{aY-EgsBOtP>jvFv<4;(-Mt zTir2aL~~zfZ_EAKOc)wZGkvv=$MsHIu`vpcW)-WaV{L-6<3+5b25Zm6#Yj72Qmo0E z_RZD1W6wm>kuI5upf*#CY!!=p6vCXB^#T6XX1vHP*@-zX>;wgSAG`5f{fRWQ>#`!2 z1;cs?GpJ7EU9sYo0^{b(4M8F)*K~82tlJ&yb8}njG|8PguEpKB4i8`|cDvUHu#e-bcnZIvAKRmhNyF2afy3Ba*?GqDAA z{|RitVI0FLY{fHVQ;pC3tiNWy#0kx)l~J_Sbg&YwPb%$wT>klk~TinaUN>GBGkX73Jb9f zSp;(lEndfd43Nzcyn#D#0edi)?3C!WAv&ArjGz*Eg?iAmdpwWId>J3$Z#;(gSq>$l z|CV-nEb7>gs&xQ0p>kBM8&IVSB9(S#PgnatJg}C3s}BBa?km7Kqonj84OU60zWD?b zb^g!bY`%JIBua@~LQN~Q+O!I4T1^sk#&=Gn^Bqa3&T2KpHiGw&lespQT5TAo{$=zv zYqopF diff --git a/languages/wc-tier-package-prices-de_DE_informal.po b/languages/wc-tier-package-prices-de_DE_informal.po index c583eae..a446d13 100644 --- a/languages/wc-tier-package-prices-de_DE_informal.po +++ b/languages/wc-tier-package-prices-de_DE_informal.po @@ -277,3 +277,103 @@ msgstr "Preis" #: includes/class-wc-tpp-product-meta.php:165 msgid "Label (optional)" msgstr "Beschriftung (optional)" + +#: wc-tier-and-package-prices.php +msgid "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." +msgstr "WooCommerce Staffel- und Paketpreise erfordert PHP 8.3 oder höher. Dein Server verwendet PHP %s." + +#: includes/class-wc-tpp-settings.php +msgid "License" +msgstr "Lizenz" + +#: includes/class-wc-tpp-settings.php +msgid "License Management" +msgstr "Lizenzverwaltung" + +#: includes/class-wc-tpp-settings.php +msgid "Enter your license key to receive updates and support." +msgstr "Gib deinen Lizenzschlüssel ein, um Updates und Support zu erhalten." + +#: includes/class-wc-tpp-settings.php +msgid "License Server URL" +msgstr "Lizenzserver-URL" + +#: includes/class-wc-tpp-settings.php +msgid "The URL of the license server." +msgstr "Die URL des Lizenzservers." + +#: includes/class-wc-tpp-settings.php +msgid "License Key" +msgstr "Lizenzschlüssel" + +#: includes/class-wc-tpp-settings.php +msgid "Your license key for this plugin." +msgstr "Dein Lizenzschlüssel für dieses Plugin." + +#: includes/class-wc-tpp-settings.php +msgid "License Status" +msgstr "Lizenzstatus" + +#: includes/class-wc-tpp-settings.php +msgid "Validate License" +msgstr "Lizenz überprüfen" + +#: includes/class-wc-tpp-settings.php +msgid "Activate License" +msgstr "Lizenz aktivieren" + +#: includes/class-wc-tpp-settings.php +msgid "No license activated" +msgstr "Keine Lizenz aktiviert" + +#: includes/class-wc-tpp-settings.php +msgid "License Active" +msgstr "Lizenz aktiv" + +#: includes/class-wc-tpp-settings.php +msgid "License Invalid" +msgstr "Lizenz ungültig" + +#: includes/class-wc-tpp-settings.php +msgid "Lifetime License" +msgstr "Lebenslange Lizenz" + +#: includes/class-wc-tpp-settings.php +msgid "Expires: %s" +msgstr "Läuft ab: %s" + +#: includes/class-wc-tpp-settings.php +msgid "Last checked: %s" +msgstr "Zuletzt geprüft: %s" + +#: includes/class-wc-tpp-settings.php +msgid "License is valid!" +msgstr "Lizenz ist gültig!" + +#: includes/class-wc-tpp-settings.php +msgid "License activated successfully!" +msgstr "Lizenz erfolgreich aktiviert!" + +#: includes/class-wc-tpp-settings.php +msgid "Permission denied." +msgstr "Zugriff verweigert." + +#: includes/class-wc-tpp-settings.php +msgid "License key and server URL are required." +msgstr "Lizenzschlüssel und Server-URL sind erforderlich." + +#: includes/class-wc-tpp-settings.php +msgid "Please enter both license server URL and license key." +msgstr "Bitte gib sowohl die Lizenzserver-URL als auch den Lizenzschlüssel ein." + +#: includes/class-wc-tpp-settings.php +msgid "Validation failed." +msgstr "Überprüfung fehlgeschlagen." + +#: includes/class-wc-tpp-settings.php +msgid "Activation failed." +msgstr "Aktivierung fehlgeschlagen." + +#: includes/class-wc-tpp-settings.php +msgid "Request failed. Please try again." +msgstr "Anfrage fehlgeschlagen. Bitte versuche es erneut." diff --git a/languages/wc-tier-package-prices-en_US.mo b/languages/wc-tier-package-prices-en_US.mo index a27e7ec6e189cf32266c68dc52861b61c49f8f04..f75db7c9c66ca956cbc2fc2d118264bfe1ed0ff4 100644 GIT binary patch literal 8219 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 KpLIrp`~LuT)`_D4 diff --git a/languages/wc-tier-package-prices-en_US.po b/languages/wc-tier-package-prices-en_US.po index d3a427a..8987ea3 100644 --- a/languages/wc-tier-package-prices-en_US.po +++ b/languages/wc-tier-package-prices-en_US.po @@ -277,3 +277,103 @@ msgstr "Price" #: includes/class-wc-tpp-product-meta.php:165 msgid "Label (optional)" msgstr "Label (optional)" + +#: wc-tier-and-package-prices.php +msgid "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." +msgstr "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." + +#: includes/class-wc-tpp-settings.php +msgid "License" +msgstr "License" + +#: includes/class-wc-tpp-settings.php +msgid "License Management" +msgstr "License Management" + +#: includes/class-wc-tpp-settings.php +msgid "Enter your license key to receive updates and support." +msgstr "Enter your license key to receive updates and support." + +#: includes/class-wc-tpp-settings.php +msgid "License Server URL" +msgstr "License Server URL" + +#: includes/class-wc-tpp-settings.php +msgid "The URL of the license server." +msgstr "The URL of the license server." + +#: includes/class-wc-tpp-settings.php +msgid "License Key" +msgstr "License Key" + +#: includes/class-wc-tpp-settings.php +msgid "Your license key for this plugin." +msgstr "Your license key for this plugin." + +#: includes/class-wc-tpp-settings.php +msgid "License Status" +msgstr "License Status" + +#: includes/class-wc-tpp-settings.php +msgid "Validate License" +msgstr "Validate License" + +#: includes/class-wc-tpp-settings.php +msgid "Activate License" +msgstr "Activate License" + +#: includes/class-wc-tpp-settings.php +msgid "No license activated" +msgstr "No license activated" + +#: includes/class-wc-tpp-settings.php +msgid "License Active" +msgstr "License Active" + +#: includes/class-wc-tpp-settings.php +msgid "License Invalid" +msgstr "License Invalid" + +#: includes/class-wc-tpp-settings.php +msgid "Lifetime License" +msgstr "Lifetime License" + +#: includes/class-wc-tpp-settings.php +msgid "Expires: %s" +msgstr "Expires: %s" + +#: includes/class-wc-tpp-settings.php +msgid "Last checked: %s" +msgstr "Last checked: %s" + +#: includes/class-wc-tpp-settings.php +msgid "License is valid!" +msgstr "License is valid!" + +#: includes/class-wc-tpp-settings.php +msgid "License activated successfully!" +msgstr "License activated successfully!" + +#: includes/class-wc-tpp-settings.php +msgid "Permission denied." +msgstr "Permission denied." + +#: includes/class-wc-tpp-settings.php +msgid "License key and server URL are required." +msgstr "License key and server URL are required." + +#: includes/class-wc-tpp-settings.php +msgid "Please enter both license server URL and license key." +msgstr "Please enter both license server URL and license key." + +#: includes/class-wc-tpp-settings.php +msgid "Validation failed." +msgstr "Validation failed." + +#: includes/class-wc-tpp-settings.php +msgid "Activation failed." +msgstr "Activation failed." + +#: includes/class-wc-tpp-settings.php +msgid "Request failed. Please try again." +msgstr "Request failed. Please try again." diff --git a/languages/wc-tier-package-prices-fr_CH.mo b/languages/wc-tier-package-prices-fr_CH.mo index d0ca1375f1aca1b3496c8e0fbc0cb04e759fb18b..039b8a36978b0f9465126bbfdc6e7bd7002205b5 100644 GIT binary patch delta 3420 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 diff --git a/languages/wc-tier-package-prices-fr_CH.po b/languages/wc-tier-package-prices-fr_CH.po index baf280f..8b4b308 100644 --- a/languages/wc-tier-package-prices-fr_CH.po +++ b/languages/wc-tier-package-prices-fr_CH.po @@ -277,3 +277,103 @@ msgstr "Prix" #: includes/class-wc-tpp-product-meta.php:165 msgid "Label (optional)" msgstr "Étiquette (optionnel)" + +#: wc-tier-and-package-prices.php +msgid "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." +msgstr "WooCommerce Prix par paliers et forfaits nécessite PHP 8.3 ou supérieur. Votre serveur utilise PHP %s." + +#: includes/class-wc-tpp-settings.php +msgid "License" +msgstr "Licence" + +#: includes/class-wc-tpp-settings.php +msgid "License Management" +msgstr "Gestion des licences" + +#: includes/class-wc-tpp-settings.php +msgid "Enter your license key to receive updates and support." +msgstr "Entrez votre clé de licence pour recevoir des mises à jour et du support." + +#: includes/class-wc-tpp-settings.php +msgid "License Server URL" +msgstr "URL du serveur de licence" + +#: includes/class-wc-tpp-settings.php +msgid "The URL of the license server." +msgstr "L'URL du serveur de licence." + +#: includes/class-wc-tpp-settings.php +msgid "License Key" +msgstr "Clé de licence" + +#: includes/class-wc-tpp-settings.php +msgid "Your license key for this plugin." +msgstr "Votre clé de licence pour cette extension." + +#: includes/class-wc-tpp-settings.php +msgid "License Status" +msgstr "Statut de la licence" + +#: includes/class-wc-tpp-settings.php +msgid "Validate License" +msgstr "Valider la licence" + +#: includes/class-wc-tpp-settings.php +msgid "Activate License" +msgstr "Activer la licence" + +#: includes/class-wc-tpp-settings.php +msgid "No license activated" +msgstr "Aucune licence activée" + +#: includes/class-wc-tpp-settings.php +msgid "License Active" +msgstr "Licence active" + +#: includes/class-wc-tpp-settings.php +msgid "License Invalid" +msgstr "Licence invalide" + +#: includes/class-wc-tpp-settings.php +msgid "Lifetime License" +msgstr "Licence à vie" + +#: includes/class-wc-tpp-settings.php +msgid "Expires: %s" +msgstr "Expire le: %s" + +#: includes/class-wc-tpp-settings.php +msgid "Last checked: %s" +msgstr "Dernière vérification: %s" + +#: includes/class-wc-tpp-settings.php +msgid "License is valid!" +msgstr "La licence est valide!" + +#: includes/class-wc-tpp-settings.php +msgid "License activated successfully!" +msgstr "Licence activée avec succès!" + +#: includes/class-wc-tpp-settings.php +msgid "Permission denied." +msgstr "Accès refusé." + +#: includes/class-wc-tpp-settings.php +msgid "License key and server URL are required." +msgstr "La clé de licence et l'URL du serveur sont requises." + +#: includes/class-wc-tpp-settings.php +msgid "Please enter both license server URL and license key." +msgstr "Veuillez entrer l'URL du serveur de licence et la clé de licence." + +#: includes/class-wc-tpp-settings.php +msgid "Validation failed." +msgstr "La validation a échoué." + +#: includes/class-wc-tpp-settings.php +msgid "Activation failed." +msgstr "L'activation a échoué." + +#: includes/class-wc-tpp-settings.php +msgid "Request failed. Please try again." +msgstr "La requête a échoué. Veuillez réessayer." diff --git a/languages/wc-tier-package-prices-it_CH.mo b/languages/wc-tier-package-prices-it_CH.mo index 1a17c6f2fa7c872172fef08b84bc40ef872792ce..45b2b6fb50082d0aa399a52090dfee95c9a2cb30 100644 GIT binary patch delta 3356 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 diff --git a/languages/wc-tier-package-prices-it_CH.po b/languages/wc-tier-package-prices-it_CH.po index e487b5e..37b3b71 100644 --- a/languages/wc-tier-package-prices-it_CH.po +++ b/languages/wc-tier-package-prices-it_CH.po @@ -277,3 +277,103 @@ msgstr "Prezzo" #: includes/class-wc-tpp-product-meta.php:165 msgid "Label (optional)" msgstr "Etichetta (facoltativo)" + +#: wc-tier-and-package-prices.php +msgid "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." +msgstr "WooCommerce Prezzi a scaglioni e pacchetti richiede PHP 8.3 o superiore. Il tuo server utilizza PHP %s." + +#: includes/class-wc-tpp-settings.php +msgid "License" +msgstr "Licenza" + +#: includes/class-wc-tpp-settings.php +msgid "License Management" +msgstr "Gestione licenza" + +#: includes/class-wc-tpp-settings.php +msgid "Enter your license key to receive updates and support." +msgstr "Inserisci la tua chiave di licenza per ricevere aggiornamenti e supporto." + +#: includes/class-wc-tpp-settings.php +msgid "License Server URL" +msgstr "URL server licenza" + +#: includes/class-wc-tpp-settings.php +msgid "The URL of the license server." +msgstr "L'URL del server di licenza." + +#: includes/class-wc-tpp-settings.php +msgid "License Key" +msgstr "Chiave di licenza" + +#: includes/class-wc-tpp-settings.php +msgid "Your license key for this plugin." +msgstr "La tua chiave di licenza per questo plugin." + +#: includes/class-wc-tpp-settings.php +msgid "License Status" +msgstr "Stato licenza" + +#: includes/class-wc-tpp-settings.php +msgid "Validate License" +msgstr "Verifica licenza" + +#: includes/class-wc-tpp-settings.php +msgid "Activate License" +msgstr "Attiva licenza" + +#: includes/class-wc-tpp-settings.php +msgid "No license activated" +msgstr "Nessuna licenza attivata" + +#: includes/class-wc-tpp-settings.php +msgid "License Active" +msgstr "Licenza attiva" + +#: includes/class-wc-tpp-settings.php +msgid "License Invalid" +msgstr "Licenza non valida" + +#: includes/class-wc-tpp-settings.php +msgid "Lifetime License" +msgstr "Licenza a vita" + +#: includes/class-wc-tpp-settings.php +msgid "Expires: %s" +msgstr "Scade il: %s" + +#: includes/class-wc-tpp-settings.php +msgid "Last checked: %s" +msgstr "Ultima verifica: %s" + +#: includes/class-wc-tpp-settings.php +msgid "License is valid!" +msgstr "La licenza è valida!" + +#: includes/class-wc-tpp-settings.php +msgid "License activated successfully!" +msgstr "Licenza attivata con successo!" + +#: includes/class-wc-tpp-settings.php +msgid "Permission denied." +msgstr "Accesso negato." + +#: includes/class-wc-tpp-settings.php +msgid "License key and server URL are required." +msgstr "La chiave di licenza e l'URL del server sono obbligatori." + +#: includes/class-wc-tpp-settings.php +msgid "Please enter both license server URL and license key." +msgstr "Inserisci sia l'URL del server di licenza che la chiave di licenza." + +#: includes/class-wc-tpp-settings.php +msgid "Validation failed." +msgstr "Verifica fallita." + +#: includes/class-wc-tpp-settings.php +msgid "Activation failed." +msgstr "Attivazione fallita." + +#: includes/class-wc-tpp-settings.php +msgid "Request failed. Please try again." +msgstr "Richiesta fallita. Per favore riprova." diff --git a/languages/wc-tier-package-prices.pot b/languages/wc-tier-package-prices.pot index ae474e9..e095067 100644 --- a/languages/wc-tier-package-prices.pot +++ b/languages/wc-tier-package-prices.pot @@ -250,3 +250,103 @@ msgstr "" #: includes/class-wc-tpp-frontend.php:178 msgid "View options for %s" msgstr "" + +#: wc-tier-and-package-prices.php +msgid "WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License Management" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Enter your license key to receive updates and support." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License Server URL" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "The URL of the license server." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License Key" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Your license key for this plugin." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License Status" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Validate License" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Activate License" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "No license activated" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License Active" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License Invalid" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Lifetime License" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Expires: %s" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Last checked: %s" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License is valid!" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License activated successfully!" +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Permission denied." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "License key and server URL are required." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Please enter both license server URL and license key." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Validation failed." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Activation failed." +msgstr "" + +#: includes/class-wc-tpp-settings.php +msgid "Request failed. Please try again." +msgstr "" diff --git a/wc-tier-and-package-prices.php b/wc-tier-and-package-prices.php old mode 100644 new mode 100755 index 6df542c..0e54e80 --- a/wc-tier-and-package-prices.php +++ b/wc-tier-and-package-prices.php @@ -4,13 +4,13 @@ * Plugin Name: WooCommerce Tier and Package Prices * Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-tier-package-prices * Description: Add tier pricing and package prices to WooCommerce products with configurable quantities at fixed prices - * Version: 1.2.9 + * Version: 1.3.0 * Author: Marco Graetsch * Author URI: https://src.bundespruefstelle.ch/magdev * Text Domain: wc-tier-package-prices * Domain Path: /languages * Requires at least: 6.0 - * Requires PHP: 7.4 + * Requires PHP: 8.3 * WC requires at least: 8.0 * WC tested up to: 10.0 * License: GPL v2 or later @@ -21,9 +21,32 @@ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } +// Check PHP version requirement +if (version_compare(PHP_VERSION, '8.3.0', '<')) { + add_action('admin_notices', 'wc_tpp_php_version_notice'); + return; +} + +/** + * Display PHP version notice + */ +if (!function_exists('wc_tpp_php_version_notice')) { + function wc_tpp_php_version_notice() { + ?> +
+

+
+