File Editor
Directories:
.. (Back)
Files:
Output.php
RestApi.php
Rules.php
Save.php
Create New File
Create
Edit File: Output.php
<?php /** * EasyDigitalDownloads Output class. * * @since 2.8.0 * * @package OMAPI * @author Gabriel Oliveira */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * EasyDigitalDownloads Output class. * * @since 2.8.0 */ class OMAPI_EasyDigitalDownloads_Output { /** * The OMAPI_EasyDigitalDownloads instance. * * @since 2.8.0 * * @var OMAPI_EasyDigitalDownloads */ public $edd; /** * Constructor * * @since 2.13.0 * * @param OMAPI_EasyDigitalDownloads $edd */ public function __construct( OMAPI_EasyDigitalDownloads $edd ) { $this->edd = $edd; } /** * Returns the payload EDD needs to use in its Display Rules. * * @since 2.8.0 * * @return array The */ public function display_rules_data() { $cart = $this->get_cart(); $user_id = get_current_user_id(); $purchased_products = edd_get_users_purchased_products( $user_id ); $cart['customer'] = null; if ( ! empty( $purchased_products ) ) { $customer_products = array_map( function ( $product ) { return $product->ID; }, $purchased_products ); $cart['customer'] = array( 'products' => $customer_products, 'stats' => edd_get_purchase_stats_by_user( $user_id ), ); } return $cart; } /** * Retrieve the cart from EDD * * @since 2.8.0. * * @return array An array of EDD cart data. */ public function get_cart() { // Bail if EDD isn't currently active. if ( ! $this->edd->is_active() ) { return array(); } // Check if EDD is the minimum version. if ( ! $this->edd->is_minimum_version() ) { return array(); } $edd_cart = EDD()->cart; $cart = array(); $cart['discounts'] = $edd_cart->get_discounts(); $cart['quantity'] = $edd_cart->get_quantity(); $cart['subtotal'] = $edd_cart->get_subtotal(); $cart['total'] = $edd_cart->get_total(); // Filter out items by leaving only necessary fields $cart['items'] = array_map( function ( $edd_item ) { return array( 'id' => $edd_item['id'], 'quantity' => $edd_item['quantity'], 'discount' => $edd_item['discount'], 'subtotal' => $edd_item['subtotal'], 'price' => $edd_item['price'], 'item_price' => $edd_item['item_price'], ); }, $edd_cart->get_contents_details() ); return $cart; } }
Save Changes
Rename File
Rename