在没有WordPress的情况下获得WooCommerce订阅


Get WooCommerce Subscription without Wordpress

我正在尝试从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的情况下让这段代码工作。有提醒吗?

您的数据是序列化的,因此maybe_deserializeis_serialize函数应该可以工作,只需复制它们:食品

编辑:

您的序列化在此处出现错误: s:3:"22"

s => 字符串

3 => 长度 3

但是你只有两个字符。

将 3 更改为 2,然后您可以反序列化

(可能是你的数据库数据损坏了,试试其他用户看看它是否正常)

在线反序列化器测试:http://www.unserialize.com/s/54d4be2e-bc4a-8208-93eb-00000a0c6243

示例查询,编辑 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);
?>