WordPress Stackexchange说我的帖子不在话题,因为它是一个php语法问题而不是WordPress问题所以我在这里发帖希望得到帮助。
经过无数的测试运行以克服致命的解析错误,我现在有一个错误的免费php文件,但它什么也没做。数组值未在服务器将接受的xml字符串中正确传递,我无法看到任何告诉我任何错误。
此文件最初编写为在html网站上运行,并且所有数组的字段都可以手动输入到一个数组中,以测试xml字符串的连接和处理。
数组的前六个值是永远不会改变的已知值,可以进行硬编码,但最后10个值总是不同的,必须查询才能创建数组。
我需要将两个数组中的数据传递到一个单独的xml字符串中,或者以某种方式编写一个完成工作的数组。
我是第一个调整此代码以在WordPress环境中工作的人。 mepr-字段是我需要从WordPress DB获得的自定义usermeta字段。所有这些文件都是通过用户注册信息,因此合作伙伴网站拥有第一个网站所做的所有相同信息,因此用户不必为两个网站注册两次。
这是我的代码,目前无法正常工作,也无法报告错误:
error_reporting(E_ERROR);
ini_set(‘display_errors’,true);
// Set the Query POST parameters
$query_vals = array(
'api_username' => 'set-value-username',
'api_password' => 'set-value-password',
'api_key' => 'set-value-api-key',
'perkalert' => 0,
'offer_radius' => 20,
'send_welcome_email' => 1
);
// Insert pluggable.php before calling get_currentuserinfo()
require (ABSPATH . WPINC . '/pluggable.php');
// Get new WordPress user registration information
global $current_user;
get_currentuserinfo();
// Values in this array are variables
$query_vals == array(
'firstname: ' . $current_user==> 'user_firstname',
'lastname: ' . $current_user==> 'user_lastname',
'adress: ' . $current_user==> 'mepr-address-one',
'city: ' . $current_user==> 'mepr-address-city',
'state: ' . $current_user==> 'mepr-address-state',
'zip: ' . $current_user==> 'mepr-address-zip',
'country: ' . $current_user==> 'mepr-address-country',
'email: ' . $current_user==> 'user_email',
'username: ' . $current_user==> 'user_login',
'password: ' . $current_user==> 'user_pass'
);
// Generate the POST string
$postdata = '';
foreach($query_vals as $key => $value) {
$postdata .= $key.'='.urlencode($value).'&';
}
// Chop of the trailing ampersand
$postdata = rtrim($postdata, '&');
// create a new cURL resource
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://third-party-site.com/register_member.xml');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
// Save response to a string
$response = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($response);
if ($xml === false) {
die('Error parsing XML');
}
//var_dump($xml);
echo "Status: ".$xml->status;
主要关注的是两个数组以及如何传递数据。如果我收到WordPress用户数据时出错,我会用WordPress Stackexchange来解决这个问题。
非常感谢任何帮助。
答案 0 :(得分:0)
我认为它取决于您要发布的网站所期望的内容,但是您有没有理由将所有字段合并为一个关联数组?
所以不要这样:
$query_vals == array(
'firstname: ' . $current_user==> 'user_firstname',
'lastname: ' . $current_user==> 'user_lastname',
'adress: ' . $current_user==> 'mepr-address-one',
'city: ' . $current_user==> 'mepr-address-city',
'state: ' . $current_user==> 'mepr-address-state',
'zip: ' . $current_user==> 'mepr-address-zip',
'country: ' . $current_user==> 'mepr-address-country',
'email: ' . $current_user==> 'user_email',
'username: ' . $current_user==> 'user_login',
'password: ' . $current_user==> 'user_pass'
);
我认为你需要有这样的:
$query_vals['firstname'] = $current_user==> 'user_firstname';
$query_vals['lastname'] = $current_user==> 'user_lastname';
$query_vals['adress'] = $current_user==> 'mepr-address-one';
$query_vals['city'] = $current_user==> 'mepr-address-city';
$query_vals['state'] = $current_user==> 'mepr-address-state';
$query_vals['zip'] = $current_user==> 'mepr-address-zip';
$query_vals['country'] = $current_user==> 'mepr-address-country';
$query_vals['email'] = $current_user==> 'user_email';
$query_vals['username'] = $current_user==> 'user_login';
$query_vals['password'] = $current_user==> 'user_pass';
现在你有一个关联数组,你的帖子可能会有效,这取决于对方的期望。