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
class DFW_Manage_Plans {
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;
}
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 ) ) ) );
}
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;
}
public static function get_default_plan_ids() {
$default_payment_plans = get_option( 'default_payment_plans', array() );
return $default_payment_plans;
}
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;
}
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;
}
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;
}
}