You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过外部PHP脚本获取WordPress用户元数据并查询MoolaMojo代币数量

PHP脚本调整方案

核心调整逻辑

  • 首先要在脚本开头加载WordPress核心文件,才能调用WP原生的用户校验函数和MoolaMojo插件的相关方法
  • 替换原有的硬编码账号校验逻辑,改用WordPress官方的wp_authenticate方法校验用户账号密码有效性
  • 调用MoolaMojo插件的余额查询接口获取用户代币持有量

修改后完整代码

<?php
// 加载WordPress核心,此处路径请根据你脚本的实际存放位置调整,比如脚本放在WP根目录的api文件夹下,就写../wp-load.php
require_once dirname(__FILE__) . '/../wp-load.php';

// Load Request
$api_method = isset($_POST['api_method']) ? $_POST['api_method'] : '';
$api_data = isset($_POST['api_data']) ? $_POST['api_data'] : '';

// Validate Request
if (empty($api_method) || empty($api_data)) {
    API_Response(true, 'Invalid Request');
}
if (!function_exists($api_method)) {
    API_Response(true, 'API Method Not Implemented');
}

// Call API Method
call_user_func($api_method, $api_data);

/* Helper Function */

function API_Response($isError, $errorMessage, $responseData = '')
{
    exit(json_encode(array(
        'IsError' => $isError,
        'ErrorMessage' => $errorMessage,
        'ResponseData' => $responseData
    )));
}

/* API Methods */

function loginUser($api_data)
{
    // Decode Login Data
    $login_data = json_decode($api_data);
    // 校验JSON解码是否成功
    if (json_last_error() !== JSON_ERROR_NONE || empty($login_data->username) || empty($login_data->password)) {
        API_Response(true, '请求参数不完整或格式错误');
    }

    // 调用WordPress原生方法校验用户名密码
    $user = wp_authenticate($login_data->username, $login_data->password);
    if (is_wp_error($user)) {
        API_Response(true, '用户名或密码错误');
    }

    // 查询MoolaMojo代币余额,优先用插件内置方法,不存在的话直接查用户元数据
    $balance = 0;
    if (function_exists('moolamojo_get_balance')) {
        $balance = moolamojo_get_balance($user->ID);
    } else {
        $balance = get_user_meta($user->ID, 'moolamojo_balance', true);
        $balance = $balance ? floatval($balance) : 0;
    }

    // 成功返回结果
    API_Response(false, '', [
        'user_id' => $user->ID,
        'username' => $user->user_login,
        'moolamojo_balance' => $balance
    ]);
}

?>

注意事项

  • 引入wp-load.php的路径需要根据你脚本的实际存放位置调整,如果脚本放在WordPress根目录下,直接写require_once 'wp-load.php';即可
  • 生产环境部署建议增加请求频率限制、HTTPS强制校验,避免密码明文传输被窃取
  • 如果你使用的MoolaMojo版本自定义了余额存储字段,可根据实际情况调整元数据查询的key值

内容的提问来源于stack exchange,提问作者jeffinter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:54:02