承接 websystems/wordpress-update-package 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

websystems/wordpress-update-package

Composer 安装命令:

composer require websystems/wordpress-update-package

包简介

WordPress plugin/theme update and licensing library for UpdatePulse Server

README 文档

README

Paczka Composer odpowiedzialna za aktualizacje i licencjonowanie wtyczek oraz motywów WordPress, integrująca się z UpdatePulse Server.

Bazuje na bibliotece updatepulse-updater z modyfikacjami opisanymi w sekcji Zmiany względem oryginału.

Działa zarówno dla wtyczek, jak i motywów — klasa automatycznie wykrywa typ na podstawie ścieżki.

Instalacja

composer require websystemspl/wordpress-update-package

Użycie w wtyczce

my-plugin.php:

<?php
/*
 * Plugin Name: My Plugin
 * Version: 1.0.0
 * Require License: yes
 */

use Anyape\UpdatePulse\Updater\v2_0\UpdatePulse_Updater;

require_once plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';

$myplugin_updater = new UpdatePulse_Updater(
    wp_normalize_path( __FILE__ ),
    wp_normalize_path( __DIR__ )
);

Użycie w motywie

functions.php:

<?php
use Anyape\UpdatePulse\Updater\v2_0\UpdatePulse_Updater;

require_once get_stylesheet_directory() . '/vendor/autoload.php';

$mytheme_updater = new UpdatePulse_Updater(
    wp_normalize_path( __FILE__ ),
    get_stylesheet_directory()
);

Zmienna $mytheme_updater (oraz $myplugin_updater) musi mieć unikalny prefix — różny dla każdej wtyczki/motywu.

Konfiguracja — updatepulse.json

W katalogu głównym wtyczki lub motywu musi znajdować się plik updatepulse.json z adresem serwera UpdatePulse:

{
    "server": "https://twoj-serwer.pl"
}

Plik zawiera tylko adres serwera. Dane licencji (klucz, sygnatura, itd.) są przechowywane w bazie danych WordPress (wp_options) i nie są zapisywane do pliku — dzięki temu aktualizacja wtyczki/motywu nie kasuje licencji.

Licencja wymagana / współdzielona

  • Aby wtyczka/motyw wymagał licencji, dodaj nagłówek w głównym pliku:
    Require License: yes
    
  • Aby używać licencji innej wtyczki/motywu, dodaj:
    Licensed With: slug-innej-wtyczki
    

Jak działa wykrywanie typu

Klasa UpdatePulse_Updater automatycznie wykrywa czy package jest wtyczką czy motywem:

  • Wtyczka — ścieżka leży w WP_PLUGIN_DIR lub WPMU_PLUGIN_DIR
  • Motyw — w katalogu pakietu istnieje plik style.css

Nie trzeba tego konfigurować ręcznie.

Zmiany względem oryginału

Oryginalna biblioteka pochodzi z Anyape/updatepulse-server-integration i była przeznaczona do ręcznego kopiowania do folderu lib/ wtyczki/motywu. Poniżej lista zmian wprowadzonych w tej paczce:

1. Integracja z Composerem

Oryginał: biblioteka ładowana przez require_once wskazujący na lib/updatepulse-updater/class-updatepulse-updater.php.

Zmiana: paczka rejestruje klasę przez autoload Composera (autoload.files). W projekcie wystarczy:

require_once plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';

2. Usunięcie bundlowanego plugin-update-checker

Oryginał: biblioteka zawierała kopię yahnis-elsts/plugin-update-checker w podfolderze lib/plugin-update-checker/ i ładowała ją ręcznie przez require.

Zmiana: yahnis-elsts/plugin-update-checker jest zadeklarowany jako zależność Composera (^5.7). Fallback require wskazuje na vendor/yahnis-elsts/plugin-update-checker/ zamiast na lokalny lib/.

3. Ścieżki do assets przeniesione na DIR

Oryginał: ścieżki do plików JS, szablonów i tłumaczeń były budowane względem $this->package_path (katalogu wtyczki/motywu) z dołączonym prefiksem lib/updatepulse-updater/:

$this->package_path . 'lib/updatepulse-updater/js/main.js'
$this->package_url  . '/lib/updatepulse-updater/js/main.js'

Zmiana: ścieżki oparte o __DIR__ klasy (katalog paczki w vendorze):

__DIR__ . '/js/main.js'
plugin_dir_url( __FILE__ ) . 'js/main.js'
__DIR__ . '/templates/'
__DIR__ . '/languages/'

4. Przechowywanie danych licencji w bazie danych

Oryginał: wszystkie opcje (licenseKey, licenseSignature, licenseNextDeactivate, itd.) były zapisywane do pliku updatepulse.json w katalogu wtyczki/motywu. Przed aktualizacją klasa kopiowała je do wp_options jako backup, a po aktualizacji — z powrotem do pliku.

Zmiana: dane licencji są zawsze przechowywane w wp_options pod kluczem updatepulse_{slug}_options. Plik updatepulse.json przechowuje wyłącznie server URL (config deploy-time, commitowany do repozytorium). Metody save_updatepulse_options() i restore_updatepulse_options() są no-op — backup przed aktualizacją nie jest potrzebny.

5. Kompatybilność z plugin-update-checker v5.7

Oryginał: używał namespace YahnisElsts\PluginUpdateChecker\v5p3\PucFactory.

Zmiana: zaktualizowany do v5p7 zgodnie z aktualną wersją biblioteki (^5.7).

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2026-06-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固