在没有Wordpress的情况下获取WooCommerce订阅

时间:2014-11-28 12:25:09

标签: php wordpress woocommerce

我正在尝试从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的情况下使这段代码正常工作。抬头?

2 个答案:

答案 0 :(得分:1)

您的数据是序列化的,因此maybe_deserializeis_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);
?>