1 <?php
2 3 4 5 6 7 8 9 10
11
12
13 if ( ! defined( 'ABSPATH' ) ) exit;
14
15 16 17 18 19 20
21 function edd_get_payment_gateways() {
22
23 $gateways = array(
24 'paypal' => array( 'admin_label' => 'PayPal', 'checkout_label' => 'PayPal' ),
25 'manual' => array( 'admin_label' => __( 'Test Payment', 'edd' ), 'checkout_label' => __( 'Test Payment', 'edd' ) ),
26 );
27
28 return apply_filters( 'edd_payment_gateways', $gateways );
29 }
30
31 32 33 34 35 36
37 function edd_get_enabled_payment_gateways() {
38 global $edd_options;
39
40 $gateways = edd_get_payment_gateways();
41 $enabled_gateways = isset( $edd_options['gateways'] ) ? $edd_options['gateways'] : false;
42
43 $gateway_list = array();
44
45 foreach ( $gateways as $key => $gateway ) :
46 if ( isset( $enabled_gateways[ $key ] ) && $enabled_gateways[ $key ] == 1) :
47 $gateway_list[ $key ] = $gateway;
48 endif;
49 endforeach;
50
51 return $gateway_list;
52 }
53
54 55 56 57 58 59 60
61 function edd_is_gateway_active( $gateway ) {
62 $gateways = edd_get_enabled_payment_gateways();
63
64 if ( array_key_exists( $gateway, $gateways ) ) {
65 return true;
66 }
67
68 return false;
69 }
70
71 72 73 74 75 76 77
78 function edd_get_default_gateway() {
79 global $edd_options;
80 return isset( $edd_options['default_gateway'] ) && edd_is_gateway_active( $edd_options['default_gateway'] ) ? $edd_options['default_gateway'] : 'paypal';
81 }
82
83 84 85 86 87 88 89
90 function edd_get_gateway_admin_label( $gateway ) {
91 $gateways = edd_get_enabled_payment_gateways();
92 return isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['admin_label'] : $gateway;
93 }
94
95 96 97 98 99 100 101
102 function edd_get_gateway_checkout_label( $gateway ) {
103 $gateways = edd_get_enabled_payment_gateways();
104 return isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['checkout_label'] : $gateway;
105 }
106
107 108 109 110 111 112 113 114
115 function edd_send_to_gateway( $gateway, $payment_data ) {
116
117 do_action( 'edd_gateway_' . $gateway, $payment_data );
118 }
119
120 121 122 123 124 125 126 127 128
129 function edd_show_gateways() {
130 $gateways = edd_get_enabled_payment_gateways();
131 $show_gateways = false;
132
133 if ( count( $gateways ) > 1 && ! isset( $_GET['payment-mode'] ) ) {
134 $show_gateways = true;
135 if ( edd_get_cart_amount() <= 0 ) {
136 $show_gateways = false;
137 }
138 }
139
140 return apply_filters( 'edd_show_gateways', $show_gateways );
141 }
142
143 144 145 146 147 148 149 150 151 152
153 function edd_get_chosen_gateway() {
154 $gateways = edd_get_enabled_payment_gateways();
155
156 if ( isset( $_GET['payment-mode'] ) ) {
157 $enabled_gateway = urldecode( $_GET['payment-mode'] );
158 } else if( count( $gateways ) >= 1 && ! isset( $_GET['payment-mode'] ) ) {
159 foreach ( $gateways as $gateway_id => $gateway ):
160 $enabled_gateway = $gateway_id;
161 if ( edd_get_cart_amount() <= 0 ) {
162 $enabled_gateway = 'manual';
163 }
164 endforeach;
165 } else if ( edd_get_cart_amount() <= 0 ) {
166 $enabled_gateway = 'manual';
167 } else {
168 $enabled_gateway = 'none';
169 }
170
171 return apply_filters( 'edd_chosen_gateway', $enabled_gateway );
172 }
173
174 175 176 177 178 179 180 181 182 183 184 185
186 function edd_record_gateway_error( $title = '', $message = '', $parent = 0 ) {
187 return edd_record_log( $title, $message, $parent, 'gateway_error' );
188 }
189
190 191 192 193 194 195
196 function edd_no_gateway_error() {
197 $gateways = edd_get_enabled_payment_gateways();
198
199 if ( empty( $gateways ) )
200 edd_set_error( 'no_gateways', __( 'You must enable a payment gateway to use Easy Digital Downloads', 'edd' ) );
201 else
202 edd_unset_error( 'no_gateways' );
203 }
204 add_action( 'init', 'edd_no_gateway_error' );
205
206 207 208 209 210 211
212 function edd_load_ajax_gateway() {
213 if ( isset( $_POST['edd_payment_mode'] ) ) {
214 do_action( 'edd_purchase_form' );
215 exit();
216 }
217 }
218 add_action( 'wp_ajax_edd_load_gateway', 'edd_load_ajax_gateway' );
219 add_action( 'wp_ajax_nopriv_edd_load_gateway', 'edd_load_ajax_gateway' );