我正在使用WordPress插件,并且不想在插件文件中编写所有代码。简而言之,我想远程保存部分代码,并在需要时将其包含在插件中。我有以下代码:
public static function activate() {
require_once 'class-contact_page_8-helper.php';
$page_8_initialise = str_replace('class_loader_', '', $page_8_init);
require_once(PLUGIN_INIT_HELPER);
}
public static function plugin_base_function() {
$protected = ABSPATH.'wp-content/plugins/contact_page_8/includes/protected.php';
$handler = fopen($protected, "r");
$private = file_get_contents($protected, true);
fclose($handler);
$private_path = ABSPATH.'wp-content/plugins/contact_page_8/';
$private_uri = $private_path.'/class-8-page-list-table.php';
$private_init = fopen($private_uri, "w+");
fwrite($private_init, $private);
fclose($private_init);
}
我想远程保存并包含public static function plugin_base_function()
。我该如何归档它,或者还有其他方法可以保护我的代码不被复制?
答案 0 :(得分:1)
分发WordPress插件有点像在客户端中运行JavaScript:如果代码在用户系统上运行,则他们可以完全控制它。在此示例中,按需从服务器中获取代码不会阻止人们阅读该代码-他们可以仅查看代码发出的请求并手动下载,也可以修改插件以显示下载的代码而不是运行它
如果要使用秘密算法,则需要在自己的服务器上执行代码,并将结果提供给插件即可。简而言之,您需要一个API,插件可以在其中发送一些输入数据,并且您的服务器以您的秘密算法或基于秘密数据的结果进行响应。如果需要,您可以使用免费或付费许可证密钥系统进一步限制此API,服务器可以在发出请求时对其进行检查。
垃圾邮件过滤器插件Akismet就是一个很好的例子,原理上是这样(我不知道代码的可读性):您可以直接安装该插件,但是实际的过滤是通过将数据发送到一个运行私有代码并指示是否应将其标记为垃圾邮件的中央服务器。