我正在尝试从Wordpress的WooCommerce插件获取订阅信息,但我不想加载WP加载的文件的疯狂负载并减慢服务器的速度。我目前使用的内容如下:
$subscription = false;
$result = WC_Subscriptions_Manager::get_users_subscriptions( $userID );
foreach ($result as $key => $value) {
if ($result[$key]["status"]=="active") $subscription = true;
}
但是有什么办法,如果不包含以下疯狂代码,我能否做到这一点:
require('wp-load.php');
我只是想连接数据库并找出一些东西。我现在在WooCommerce中输入的内容是一个很大的文本块:
a:1:{s:7:"609_222";a:11:{s:10:"product_id";s:3:"22";s:9:"order_key";s:19:"order_5396dcccd4049";s:8:"order_id";i:609;s:10:"start_date";s:19:"2014-06-10 10:37:51";s:11:"expiry_date";i:0;s:8:"end_date";i:0;s:6:"status";s:6:"active";s:17:"trial_expiry_date";i:0;s:15:"failed_payments";i:0;s:18:"completed_payments";a:1:{i:0;s:19:"2014-06-10 10:37:52";}s:16:"suspension_count";i:0;}}
我不知道如何在不使用wp-load.php
的情况下使这段代码正常工作。抬头?
答案 0 :(得分:1)
您的数据是序列化的,因此maybe_deserialize
和is_serialize
功能应该有效,只需复制它们:
Codex
编辑:
您的序列号在此处出错:
s:3:"22"
s =>串
3 =>长度为3
但你只有两个char。
将3改为2然后你可以反序列化
(它可能是您数据库中的损坏数据,请与其他用户一起查看是否可以)
在线反序列化器测试: http://www.unserialize.com/s/54d4be2e-bc4a-8208-93eb-00000a0c6243
答案 1 :(得分:0)
示例查询,编辑woocommerce所在的位置。
<?php
require 'wp-config.php';
$link = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if (!$link) die('Could not connect: ' . mysql_error());
mysql_select_db(DB_NAME,$link);
$r = mysql_query("SELECT * FROM wp_options WHERE option_name = '_site_transient_update_core'");
$a = mysql_fetch_assoc($r);
$data = unserialize($a['option_value']);
print_r($data);
?>