批量启用woocommerce插件

日期: 栏目:跨境 浏览:393 评论:0
<?php
// 打开 xxxx.txt 文件 xxxx.txt文件里面放你要启用的插件,请看第16行如果有多个
//默认是4个,因为数据库用户名这些也包含在内,比如我放了2个插件就是4+2=6
$file = fopen("xxxx.txt", "r") or die("无法打开文件!");

// 逐行读取文件内容
while (!feof($file)) {
    // 读取一行内容并去除首尾空白
    $line = trim(fgets($file));
   
    // 如果行内容不为空,则进行处理
    if (!empty($line)) {
        // 拆分行内容为数组,分别包含数据库连接信息和插件路径
        $data = explode(",", $line);
       
        // 如果数组长度为 6(即包含数据库连接信息和插件路径)
        //不懂请看第二行注释
        if (count($data) == 5) {
            // 从数组中提取数据库连接信息和插件路径,其中可添加$plugin1-$plugin99
            $host = $data[0];
            $username = $data[1];
            $password = $data[2];
            $dbname = $data[3];
            $plugin1 = $data[4];
            $plugin2 = $data[5];
           
            // 连接到数据库
            $conn = new mysqli($host, $username, $password, $dbname);
           
            // 检查连接是否成功
            if ($conn->connect_error) {
                die("连接失败: " . $conn->connect_error);
            }
           
            // 查询当前 option_value
            $query = "SELECT `option_value` FROM `wp_options` WHERE `option_id` = 33";
            $result = $conn->query($query);
           
            if ($result->num_rows > 0) {
                // 输出数据
                while($row = $result->fetch_assoc()) {
                    $current_option_value = $row["option_value"];
                }

                // 反序列化当前的 option_value
                $current_option_array = unserialize($current_option_value);

                // 检查插件路径是否已存在
                $plugins_to_add = array();
                if (!in_array($plugin1, $current_option_array)) {
                    $plugins_to_add[] = $plugin1;
                }
                if (!in_array($plugin2, $current_option_array)) {
                    $plugins_to_add[] = $plugin2;
                }

                // 如果有新的插件路径需要添加
                if (!empty($plugins_to_add)) {
                    // 获取当前数组的最大键值
                    $max_key = max(array_keys($current_option_array));

                    // 添加新插件路径到数组中,键值自动分配
                    foreach ($plugins_to_add as $plugin) {
                        $current_option_array[++$max_key] = $plugin;
                    }

                    // 序列化数组为新的 option_value
                    $new_option_value = serialize($current_option_array);

                    // 更新数据库中的 option_value
                    $update_query = "UPDATE `wp_options` SET `option_value` = '" . $conn->real_escape_string($new_option_value) . "' WHERE `option_id` = 33";
                    if ($conn->query($update_query) === TRUE) {
                        echo "option_value 更新成功\n";
                    } else {
                        echo "更新 option_value 时出错: " . $conn->error . "\n";
                    }
                } else {
                    echo "插件路径已存在,无需更新\n";
                }
            } else {
                echo "没有找到相关记录\n";
            }

            // 关闭数据库连接
            $conn->close();
        } else {
            echo "行格式不正确\n";
        }
    }
}

// 关闭 xxxx.txt 文件
fclose($file);
?>

xxx.txt格式为:
127.0.0.1,数据库用户名,密码,数据库名,xxxpaypal-for-woocommerce/init.php

其中其中xxxpaypal-for-woocommerce/init.php为你的插件目下的init.php文件,并不是所有的都是init.php也可能是index.php或其他的paypp-for-woocommerce/init.php为你的插件目下的init.php文件,并不是所有的都是init.php也可能是index.php或其他的


标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看