You've already forked wc-tier-and-package-prices
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 <noreply@anthropic.com>
This commit is contained in:
39
CHANGELOG.md
39
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/),
|
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).
|
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
|
## [1.2.9] - 2025-12-30
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
20
CLAUDE.md
20
CLAUDE.md
@@ -1,7 +1,7 @@
|
|||||||
# WooCommerce Tier and Package Prices - AI Context Document
|
# WooCommerce Tier and Package Prices - AI Context Document
|
||||||
|
|
||||||
**Last Updated:** 2025-12-30
|
**Last Updated:** 2026-01-25
|
||||||
**Current Version:** 1.2.9
|
**Current Version:** 1.3.0
|
||||||
**Author:** Marco Graetsch
|
**Author:** Marco Graetsch
|
||||||
**Project Status:** Production-ready WordPress plugin
|
**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
|
## 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
|
- TBD
|
||||||
- Split the settings page into sub-tabs, like in the WooCommerce Advanced tab
|
|
||||||
|
|
||||||
## Technical Stack
|
## Technical Stack
|
||||||
|
|
||||||
- **Language:** PHP 7.4+
|
- **Language:** PHP 8.3+
|
||||||
- **Framework:** WordPress Plugin API
|
- **Framework:** WordPress Plugin API
|
||||||
- **E-commerce:** WooCommerce 8.0+ (tested up to 10.x)
|
- **E-commerce:** WooCommerce 8.0+ (tested up to 10.x)
|
||||||
- **Template Engine:** Twig 3.0 (via Composer)
|
- **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
|
```json
|
||||||
{
|
{
|
||||||
"twig/twig": "^3.0",
|
"twig/twig": "^3.0",
|
||||||
"symfony/polyfill-ctype": "^1.x",
|
"magdev/wc-licensed-product-client": "^0.1",
|
||||||
"symfony/polyfill-mbstring": "^1.x"
|
"symfony/http-client": "^7.0",
|
||||||
|
"psr/log": "^3.0",
|
||||||
|
"psr/cache": "^3.0",
|
||||||
|
"psr/http-client": "^1.0"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -154,3 +154,52 @@ label[for^="wc_tpp_restrict_to_packages_"] {
|
|||||||
input[id^="wc_tpp_restrict_to_packages_"] + .description {
|
input[id^="wc_tpp_restrict_to_packages_"] + .description {
|
||||||
display: none;
|
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;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "magdev/wc-tier-package-prices",
|
"name": "magdev/wc-tier-package-prices",
|
||||||
"description": "WooCommerce plugin for tier pricing and package prices with Twig templates",
|
"description": "WooCommerce plugin for tier pricing and package prices with Twig templates",
|
||||||
"version": "1.2.9",
|
"version": "1.3.0",
|
||||||
"type": "wordpress-plugin",
|
"type": "wordpress-plugin",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"authors": [
|
"authors": [
|
||||||
@@ -10,9 +10,16 @@
|
|||||||
"homepage": "https://src.bundespruefstelle.ch/magdev"
|
"homepage": "https://src.bundespruefstelle.ch/magdev"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://src.bundespruefstelle.ch/magdev/wc-licensed-product-client.git"
|
||||||
|
}
|
||||||
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.4",
|
"php": ">=8.3",
|
||||||
"twig/twig": "^3.0"
|
"twig/twig": "^3.0",
|
||||||
|
"magdev/wc-licensed-product-client": "^0.1"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"classmap": [
|
"classmap": [
|
||||||
|
|||||||
422
includes/class-wc-tpp-settings.php
Normal file → Executable file
422
includes/class-wc-tpp-settings.php
Normal file → Executable file
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* WooCommerce Settings Integration
|
* 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
|
* @package WC_Tier_Package_Prices
|
||||||
*/
|
*/
|
||||||
@@ -21,40 +21,39 @@ if (!class_exists('WC_Settings_Page')) {
|
|||||||
if (!class_exists('WC_TPP_Settings')) {
|
if (!class_exists('WC_TPP_Settings')) {
|
||||||
class WC_TPP_Settings extends WC_Settings_Page {
|
class WC_TPP_Settings extends WC_Settings_Page {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->id = 'tier_package_prices';
|
$this->id = 'tier_package_prices';
|
||||||
$this->label = __('Tier & Package Prices', 'wc-tier-package-prices');
|
$this->label = __('Tier & Package Prices', 'wc-tier-package-prices');
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
// Add AJAX handlers for license validation
|
||||||
* Get sections
|
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 array
|
}
|
||||||
*/
|
|
||||||
public function get_sections() {
|
|
||||||
$sections = array(
|
|
||||||
'' => __('General', 'wc-tier-package-prices'),
|
|
||||||
);
|
|
||||||
|
|
||||||
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
|
* Get settings for the default (General) section
|
||||||
*
|
*
|
||||||
* @param string $current_section Current section name.
|
* @return array
|
||||||
* @return array
|
*/
|
||||||
*/
|
protected function get_settings_for_default_section() {
|
||||||
public function get_settings($current_section = '') {
|
return array(
|
||||||
$settings = array();
|
|
||||||
|
|
||||||
if ('' === $current_section) {
|
|
||||||
$settings = array(
|
|
||||||
array(
|
array(
|
||||||
'title' => __('Tier & Package Prices Settings', 'wc-tier-package-prices'),
|
'title' => __('Tier & Package Prices Settings', 'wc-tier-package-prices'),
|
||||||
'type' => 'title',
|
'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',
|
||||||
|
),
|
||||||
|
|
||||||
/**
|
array(
|
||||||
* Output the settings
|
'title' => __('License Server URL', 'wc-tier-package-prices'),
|
||||||
*/
|
'desc' => __('The URL of the license server.', 'wc-tier-package-prices'),
|
||||||
public function output() {
|
'id' => 'wc_tpp_license_server_url',
|
||||||
$settings = $this->get_settings();
|
'type' => 'url',
|
||||||
WC_Admin_Settings::output_fields($settings);
|
'default' => '',
|
||||||
}
|
'css' => 'min-width:400px;',
|
||||||
|
'desc_tip' => true,
|
||||||
|
),
|
||||||
|
|
||||||
/**
|
array(
|
||||||
* Save settings
|
'title' => __('License Key', 'wc-tier-package-prices'),
|
||||||
*/
|
'desc' => __('Your license key for this plugin.', 'wc-tier-package-prices'),
|
||||||
public function save() {
|
'id' => 'wc_tpp_license_key',
|
||||||
$settings = $this->get_settings();
|
'type' => 'text',
|
||||||
WC_Admin_Settings::save_fields($settings);
|
'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();
|
||||||
|
?>
|
||||||
|
<tr valign="top">
|
||||||
|
<th scope="row" class="titledesc">
|
||||||
|
<label><?php esc_html_e('License Status', 'wc-tier-package-prices'); ?></label>
|
||||||
|
</th>
|
||||||
|
<td class="forminp">
|
||||||
|
<div id="wc-tpp-license-status-container" class="<?php echo !empty($status['valid']) ? 'valid' : 'invalid'; ?>">
|
||||||
|
<?php $this->render_license_status_html($status); ?>
|
||||||
|
</div>
|
||||||
|
<p class="description" style="margin-top: 10px;">
|
||||||
|
<button type="button" class="button" id="wc-tpp-validate-license">
|
||||||
|
<?php esc_html_e('Validate License', 'wc-tier-package-prices'); ?>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="button" id="wc-tpp-activate-license">
|
||||||
|
<?php esc_html_e('Activate License', 'wc-tier-package-prices'); ?>
|
||||||
|
</button>
|
||||||
|
<span class="spinner" id="wc-tpp-license-spinner"></span>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render license status HTML
|
||||||
|
*
|
||||||
|
* @param array|false $status License status data.
|
||||||
|
*/
|
||||||
|
private function render_license_status_html($status) {
|
||||||
|
if (empty($status)) {
|
||||||
|
echo '<span class="wc-tpp-license-inactive">' . esc_html__('No license activated', 'wc-tier-package-prices') . '</span>';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($status['valid'])) {
|
||||||
|
echo '<span class="wc-tpp-license-active">' . esc_html__('License Active', 'wc-tier-package-prices') . '</span>';
|
||||||
|
if (!empty($status['expires_at']) && empty($status['is_lifetime'])) {
|
||||||
|
echo '<br><small>' . sprintf(
|
||||||
|
/* translators: %s: Expiration date */
|
||||||
|
esc_html__('Expires: %s', 'wc-tier-package-prices'),
|
||||||
|
esc_html($status['expires_at'])
|
||||||
|
) . '</small>';
|
||||||
|
} elseif (!empty($status['is_lifetime'])) {
|
||||||
|
echo '<br><small>' . esc_html__('Lifetime License', 'wc-tier-package-prices') . '</small>';
|
||||||
|
}
|
||||||
|
if (!empty($status['checked_at'])) {
|
||||||
|
echo '<br><small>' . sprintf(
|
||||||
|
/* translators: %s: Last check timestamp */
|
||||||
|
esc_html__('Last checked: %s', 'wc-tier-package-prices'),
|
||||||
|
esc_html($status['checked_at'])
|
||||||
|
) . '</small>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<span class="wc-tpp-license-inactive">' . esc_html__('License Invalid', 'wc-tier-package-prices') . '</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Output JavaScript for license management
|
||||||
|
*/
|
||||||
|
private function output_license_scripts() {
|
||||||
|
$nonce = wp_create_nonce('wc_tpp_license_nonce');
|
||||||
|
?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(function($) {
|
||||||
|
var $validateBtn = $('#wc-tpp-validate-license');
|
||||||
|
var $activateBtn = $('#wc-tpp-activate-license');
|
||||||
|
var $spinner = $('#wc-tpp-license-spinner');
|
||||||
|
|
||||||
|
function getLicenseData() {
|
||||||
|
return {
|
||||||
|
license_key: $('#wc_tpp_license_key').val(),
|
||||||
|
server_url: $('#wc_tpp_license_server_url').val(),
|
||||||
|
nonce: '<?php echo esc_js($nonce); ?>'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function showSpinner() {
|
||||||
|
$spinner.addClass('is-active');
|
||||||
|
$validateBtn.prop('disabled', true);
|
||||||
|
$activateBtn.prop('disabled', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideSpinner() {
|
||||||
|
$spinner.removeClass('is-active');
|
||||||
|
$validateBtn.prop('disabled', false);
|
||||||
|
$activateBtn.prop('disabled', false);
|
||||||
|
}
|
||||||
|
|
||||||
|
$validateBtn.on('click', function() {
|
||||||
|
var data = getLicenseData();
|
||||||
|
if (!data.license_key || !data.server_url) {
|
||||||
|
alert('<?php echo esc_js(__('Please enter both license server URL and license key.', 'wc-tier-package-prices')); ?>');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
showSpinner();
|
||||||
|
$.post(ajaxurl, $.extend({action: 'wc_tpp_validate_license'}, data))
|
||||||
|
.done(function(response) {
|
||||||
|
if (response.success) {
|
||||||
|
alert(response.data.message);
|
||||||
|
location.reload();
|
||||||
|
} else {
|
||||||
|
alert(response.data.message || '<?php echo esc_js(__('Validation failed.', 'wc-tier-package-prices')); ?>');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.fail(function() {
|
||||||
|
alert('<?php echo esc_js(__('Request failed. Please try again.', 'wc-tier-package-prices')); ?>');
|
||||||
|
})
|
||||||
|
.always(hideSpinner);
|
||||||
|
});
|
||||||
|
|
||||||
|
$activateBtn.on('click', function() {
|
||||||
|
var data = getLicenseData();
|
||||||
|
if (!data.license_key || !data.server_url) {
|
||||||
|
alert('<?php echo esc_js(__('Please enter both license server URL and license key.', 'wc-tier-package-prices')); ?>');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
showSpinner();
|
||||||
|
$.post(ajaxurl, $.extend({action: 'wc_tpp_activate_license'}, data))
|
||||||
|
.done(function(response) {
|
||||||
|
if (response.success) {
|
||||||
|
alert(response.data.message);
|
||||||
|
location.reload();
|
||||||
|
} else {
|
||||||
|
alert(response.data.message || '<?php echo esc_js(__('Activation failed.', 'wc-tier-package-prices')); ?>');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.fail(function() {
|
||||||
|
alert('<?php echo esc_js(__('Request failed. Please try again.', 'wc-tier-package-prices')); ?>');
|
||||||
|
})
|
||||||
|
.always(hideSpinner);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Preis"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "Beschriftung (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."
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Preis"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "Beschriftung (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."
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Preis"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "Beschriftung (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."
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Preis"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "Beschriftung (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."
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Price"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "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."
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Prix"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "Étiquette (optionnel)"
|
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."
|
||||||
|
|||||||
Binary file not shown.
@@ -277,3 +277,103 @@ msgstr "Prezzo"
|
|||||||
#: includes/class-wc-tpp-product-meta.php:165
|
#: includes/class-wc-tpp-product-meta.php:165
|
||||||
msgid "Label (optional)"
|
msgid "Label (optional)"
|
||||||
msgstr "Etichetta (facoltativo)"
|
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."
|
||||||
|
|||||||
@@ -250,3 +250,103 @@ msgstr ""
|
|||||||
#: includes/class-wc-tpp-frontend.php:178
|
#: includes/class-wc-tpp-frontend.php:178
|
||||||
msgid "View options for %s"
|
msgid "View options for %s"
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|||||||
29
wc-tier-and-package-prices.php
Normal file → Executable file
29
wc-tier-and-package-prices.php
Normal file → Executable file
@@ -4,13 +4,13 @@
|
|||||||
* Plugin Name: WooCommerce Tier and Package Prices
|
* Plugin Name: WooCommerce Tier and Package Prices
|
||||||
* Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-tier-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
|
* 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: Marco Graetsch
|
||||||
* Author URI: https://src.bundespruefstelle.ch/magdev
|
* Author URI: https://src.bundespruefstelle.ch/magdev
|
||||||
* Text Domain: wc-tier-package-prices
|
* Text Domain: wc-tier-package-prices
|
||||||
* Domain Path: /languages
|
* Domain Path: /languages
|
||||||
* Requires at least: 6.0
|
* Requires at least: 6.0
|
||||||
* Requires PHP: 7.4
|
* Requires PHP: 8.3
|
||||||
* WC requires at least: 8.0
|
* WC requires at least: 8.0
|
||||||
* WC tested up to: 10.0
|
* WC tested up to: 10.0
|
||||||
* License: GPL v2 or later
|
* License: GPL v2 or later
|
||||||
@@ -21,9 +21,32 @@ if (!defined('ABSPATH')) {
|
|||||||
exit; // Exit if accessed directly
|
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() {
|
||||||
|
?>
|
||||||
|
<div class="notice notice-error">
|
||||||
|
<p><?php printf(
|
||||||
|
/* translators: %s: Current PHP version */
|
||||||
|
__('WooCommerce Tier and Package Prices requires PHP 8.3 or higher. Your server is running PHP %s.', 'wc-tier-package-prices'),
|
||||||
|
PHP_VERSION
|
||||||
|
); ?></p>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Define plugin constants
|
// Define plugin constants
|
||||||
if (!defined('WC_TPP_VERSION')) {
|
if (!defined('WC_TPP_VERSION')) {
|
||||||
define('WC_TPP_VERSION', '1.2.9');
|
define('WC_TPP_VERSION', '1.3.0');
|
||||||
}
|
}
|
||||||
if (!defined('WC_TPP_PLUGIN_DIR')) {
|
if (!defined('WC_TPP_PLUGIN_DIR')) {
|
||||||
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||||
|
|||||||
Reference in New Issue
Block a user