madvault/slswc-client 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

madvault/slswc-client

Composer 安装命令:

composer require madvault/slswc-client

包简介

SDK for WordPress plugins and themes to check updates, manage licenses, and enforce DRM against an SLSWC-powered license server.

README 文档

README

PHP SDK for WordPress plugins and themes to check for updates, manage licenses, and enforce DRM against an SLSWC-powered license server.

Installation

composer require slswc/client

Usage

Plugin Integration

use SLSWC\Client\Plugin;

add_action( 'plugins_loaded', function () {
    $client = Plugin::get_instance(
        'https://your-license-server.com/',
        __FILE__,
        array(
            'license_key' => get_option( 'my_plugin_license_key', '' ),
        )
    );
    $client->init_hooks();
}, 11 );

Theme Integration

use SLSWC\Client\Theme;

add_action( 'after_setup_theme', function () {
    $theme = Theme::get_instance(
        'https://your-license-server.com/',
        WP_CONTENT_DIR . '/themes/my-theme',
        array(
            'license_key' => get_option( 'my_theme_license_key', '' ),
        )
    );
    $theme->init_hooks();
} );

Plugin Headers

Add SLSWC headers to your plugin's main file:

/**
 * Plugin Name: My Plugin
 * Version:     1.0.0
 * Text Domain: my-plugin
 *
 * SLSWC:                    plugin
 * SLSWC Documentation URL:  https://example.com/docs
 * SLSWC Compatible To:      6.9
 */

DRM (Optional)

$client = Plugin::get_instance(
    'https://your-license-server.com/',
    __FILE__,
    array(
        'license_key' => get_option( 'my_plugin_license_key', '' ),
        'drm' => array(
            'enabled'      => true,
            'product_name' => 'My Plugin',
        ),
    )
);

Multi-consumer safety

Multiple plugins and themes on the same WordPress install can embed this SDK independently. Each consumer receives its own isolated Plugin / Theme / ApiClient instance, keyed internally by:

  • Plugin::get_instance( $url, $base_file, $args ) — keyed by $base_file (the consumer's main plugin file path).
  • Theme::get_instance( $url, $base_file, $args ) — keyed by $base_file (the consumer's theme directory path).
  • ApiClient::get_instance( $url, $text_domain ) — keyed by $text_domain.

text_domain, DRM option keys (<text_domain>_drm_*), LicenseDetails option key (<text_domain>_license_details), DRM admin notice hooks, and scheduled license-check cron events therefore stay isolated across consumers. There is no shared mutable state between two consumers on the same site.

Consumers are expected to pass a stable $base_file (a plugin's main __FILE__ is ideal) and a unique text_domain per product. Reusing the same text_domain across two consumers will share a registry slot and is unsupported.

Documentation

Full integration guides: licenseserver.io/documentation

License

GPL-2.0-or-later

统计信息

  • 总下载量: 24
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 3
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2023-04-28

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固