Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hook Reference
  • Docs Home

Packages

  • Deposits-for-WooCommerce
    • Bookings
    • Cart
    • Order
    • Other
    • Payment-Plans
      • Views
    • Products
    • Settings

Classes

  • DFW_Deposits
  • DFW_Deposits_For_Bookings
  • DFW_Deposits_Plan
  • DFW_Deposits_Settings
  • DFW_License
  • DFW_Manage_Cart
  • DFW_Manage_Order_Items
  • DFW_Manage_Orders
  • DFW_Manage_Plans
  • DFW_Manage_Products
  • DFW_Payment_Plans_List
  • DFW_Plans_Admin_Settings
  • DFW_Product_Admin_Settings
  • DFW_Scheduled_Plan_Orders
  • DFW_Update_DB
  • EDD_DEPOSITS_Plugin_Updater

Functions

  • dfw_update_po_file
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 
<?php
/**
 * Manage the Payment Plans
 * 
 * @author Tyche Softwares
 * @since 1.0 
 * @category Classes
 * @package Deposits-for-WooCommerce/Payment-Plans
 */

class DFW_Manage_Plans {


    /**
     * Get the data for all payment plans
     * 
     * @globals $wpdb
     * @return array
     * @since 1.0
     */
    public static function get_plans() {
        global $wpdb;
        $wpdb->dfw_deposits_payment_plans = $wpdb->prefix . 'dfw_deposits_payment_plans';
        $plans = array();

        foreach( $wpdb->get_results("SELECT * FROM {$wpdb->dfw_deposits_payment_plans}") as $result ) {
            $plans[] = new DFW_Deposits_Plan( $result );
        }

        return $plans;
    }

    /**
     * Get the data for a specific plan from plan id
     * 
     * @param int $plan_id Payment Plan ID
     * @globals $wpdb
     * @return array
     * @since 1.0
     */
    public static function get_plan( $plan_id ) {
        global $wpdb;
        $wpdb->dfw_deposits_payment_plans = $wpdb->prefix . 'dfw_deposits_payment_plans';

        return new DFW_Deposits_Plan( $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->dfw_deposits_payment_plans} WHERE ID = %d", absint( $plan_id ) ) ) );
    }

    /**
     * Get the IDs of all payment plans
     * 
     * @return array
     * @since 1.0
     */
    public static function get_plan_ids() {
        $plans    = self::get_plans();
        $plan_ids = array();

        foreach ( $plans as $plan ) {
            $plan_ids[ $plan->get_plan_id() ] = $plan->get_plan_name();
        }

        return $plan_ids;
    }

    /**
     * Get the ids of the payment plans selected in global settings
     * 
     * @return array
     * @since 1.0
     */
    public static function get_default_plan_ids() {
        $default_payment_plans = get_option( 'default_payment_plans', array() );
        return $default_payment_plans;
    }

    /**
     * Get the data for the payment plans selected in the global settings
     * 
     * @return array
     * @since 1.0
     */
    public static function get_default_plans() {
        global $wpdb;
        $wpdb->dfw_deposits_payment_plans = $wpdb->prefix . 'dfw_deposits_payment_plans';
        $plans    = array();
        $plan_ids = array_merge( array( 0 ), self::get_default_plan_ids() );

        foreach( $wpdb->get_results( "SELECT * FROM {$wpdb->dfw_deposits_payment_plans} WHERE ID IN (" . implode( ',', $plan_ids ) . ")" ) as $result ) {
            $plans[] = new DFW_Deposits_Plan( $result );
        }

        return $plans;

    }

    /**
     * Get the plan ids of the payment plans selected for a particular product
     * 
     * @param int $product_id Product ID
     * @return array
     * @since 1.0
     */
    public static function get_plan_ids_for_product( $product_id ) {
        $map = array_map( 'absint', array_filter( (array) get_post_meta( $product_id, 'product_payment_plans', true ) ) );
        if ( count( $map ) <= 0 ) {
            $map = self::get_default_plan_ids();
        }
        return $map;
    }

    /**
     * Get the data for the payment plans for a particular product
     * 
     * @param int $product_id Product ID
     * @return array
     * @since 1.0
     */
    public static function get_plans_for_product( $product_id ) {
        global $wpdb;
        $wpdb->dfw_deposits_payment_plans = $wpdb->prefix . 'dfw_deposits_payment_plans';
        $plans    = array();
        $plan_ids = array_merge( array( 0 ), self::get_plan_ids_for_product( $product_id ) );

        foreach( $wpdb->get_results( "SELECT * FROM {$wpdb->dfw_deposits_payment_plans} WHERE ID IN (" . implode( ',', $plan_ids ) . ")" ) as $result ) {
            $plans[] = new DFW_Deposits_Plan( $result );
        }

        return $plans;
    }
}
API documentation generated by ApiGen