支払いゲートウェイが要求したときにユーザーを削除しようとしています。次のコードがあります。
(支払いゲートウェイと通信する完全な機能を表示するためのコードを編集し、エコーは支払いゲートウェイへの応答を返します。支払いゲートウェイのサンプルコードで使用されているためです。)
function handle_gateway_return() {
$GWPass = get_option( $this->gateway . "_gateway_gwpass" );
if ($_GET["GWPass"] != $GWPass ) {
header("HTTP/1.0 401 Unauthorized");
echo "<h1>Gateway 1.1</h1><h3>Authentication failed.</h3>";
exit;
}
//==================================================
// Action: user.add
//==================================================
if ($_GET["Action"] == "user.add") {
// Load variables
$ZFirstName = trim($_GET['FIRSTNAME']);
$ZLastName = trim($_GET['LASTNAME']);
$ZFullName = $ZFirstName." ".$ZLastName;
$ZUserName = trim($_GET['username']);
$ZEmail = trim($_GET['EMAIL']);
$ZPassword = trim($_GET['password']);
$ZPassword = md5($ZPassword); //md5
if ( username_exists( $ZUserName ) ) {
echo "OK|User Added!";
exit;
}
if ( !username_exists( $ZUserName ) ) {
wp_create_user( $ZUserName, $ZPassword, $ZEmail );
echo "OK|User Added!";
exit;
}
}
//==================================================
// Action: user.delete
//==================================================
else if ($_GET["Action"] == "user.delete") {
$ZUserName = trim($_GET['username']);
// Grab user_id
$user = get_user_by('login', $ZUserName);
if (!$user) {
echo 'USER_DOES_NOT_EXIST';
exit;
}
$url = network_site_url('/wp-admin/includes/ms.php');
if ($user) {
include($url);
wpmu_delete_user($user->ID);
echo "OK|User Deleted!";
exit;
}
} else {
echo "UNKNOWN_ACTION|UNKNOWN_ACTION";
exit;
}
}
しかし、ユーザーは削除されません!何がおかしいのですか?
ご協力ありがとうございます。
編集:これはwpmudevsメンバーシッププラグインで使用されるペイメントゲートウェイアドオンファイル内で起こっています。アドオンファイルには、ゲートウェイの戻りを処理する関数があり、ユーザーの作成はwp_create_userを使用して正常に機能し、はい、そこにインクルードする必要はありませんでした。ここでインクルードを追加したのは、どこかで言及されているのを見たからです。インクルードしないとうまくいかないと思います(しかし、必要ではないと思いました)。
私はしばらく前にこれを考え出しました…完全にここに投稿するのを忘れました。
インクルードを正しく追加したら、それはうまくいきました:
require_once('./wp-admin/includes/ms.php');
if ( $user ) {
wpmu_delete_user( $user->ID );
}
将来の読者のために、これが最後のコードです。
function handle_gateway_return() {
$GWPass = get_option( $this->gateway . "_gateway_gwpass" );
if ($_GET["GWPass"] != $GWPass) {
header("HTTP/1.0 401 Unauthorized");
echo "<h1>Gateway 1.1</h1><h3>Authentication failed.</h3>";
exit;
}
if ($_GET["Action"] == "user.add") {
// Load variables.
$ZFirstName = trim($_GET['FIRSTNAME']);
$ZLastName = trim($_GET['LASTNAME']);
$ZFullName = $ZFirstName." ".$ZLastName;
$ZUserName = trim($_GET['username']);
$ZEmail = trim($_GET['EMAIL']);
$ZPassword = trim($_GET['password']);
$ZPassword = md5($ZPassword); //md5
if ( !username_exists( $ZUserName ) ) {
wp_create_user( $ZUserName, $ZPassword, $ZEmail );
}
// Tell server that user was added
echo "OK|User added!";
exit;
}
else if ($_GET["Action"] == "user.delete") {
$ZUserName = trim($_GET['username']);
$user = get_user_by( 'login', $ZUserName );
require_once('./wp-admin/includes/ms.php');
if ( $user ) {
wpmu_delete_user( $user->ID );
} else {
echo "User Not Deleted!";
exit;
}
// Tell server user deleted
echo "OK|User deleted!";
exit;
}
else {
echo "UNKNOW_ACTION|UNKNOW_ACTION";
exit;
}
}