How can I use the WooCommerce Subscription API in PHP correctly?

The documentation is very scarce. I am trying to create code that uses the woocommerce subscriptions (plugin for woocommerce) api to get a list of subscriptions and all the details of each subscription. The documents and examples there are so scarce and weak that I cannot get it right. The following code did not cause errors, but did not display any subscribers (just a blank page). How can I list all the details of all signatures?

<?php

if(isset($_REQUEST['Action']))
{
    $Action = $_REQUEST['Action'];
    switch($Action)
    {
        case "ValidateSubscription":
            chdir("../wp-content/plugins/woocommerce-subscriptions/classes");
            include '../../woocommerce/woocommerce.php';
            //include '../woo-includes/woo-functions.php';
            //include '../woo-includes/class-wc-dependencies.php';
            include 'class-wc-subscriptions-manager.php';

            $Subscriptions = WC_Subscriptions_Manager::get_all_users_subscriptions();
            print_r($Subscriptions);
            break;
        default:
            echo "invalid action";
    }
}else
{
    echo "no action specified";
}
+4
source share
2 answers

This is not how you incorporate WordPress features into external code. Try it.

if(isset($_REQUEST['Action']))
{
    $Action = $_REQUEST['Action'];
    switch($Action)
    {
        case "ValidateSubscription":

            include('../wp-load.php'); //Guessing this path based on your code sample... should be wp root

            $Subscriptions = WC_Subscriptions_Manager::get_all_users_subscriptions();
            print_r($Subscriptions);
            break;
        default:
            echo "invalid action";
    }
}else
{
    echo "no action specified";
}
+4
source

Piggybacking @ChuckMac , , , WordPress API- , WordPress . WP init hook, , "" $_REQUEST. plugins_loaded .

add_action( 'init', 'so_26193801_event_listener' );

function so_26193801_event_listener(){

    if(isset($_REQUEST['Action'])){
        $Action = $_REQUEST['Action'];
        switch($Action){
            case "ValidateSubscription":

                $Subscriptions = WC_Subscriptions_Manager::get_all_users_subscriptions();
                print_r($Subscriptions);
                break;
            default:
                echo "invalid action";
        } 
    } else {
        echo "no action specified";
    }
}
+2

All Articles