PluginProbe
Welcart e-Commerce / 1.3.17
Welcart e-Commerce v1.3.17
2.12.4 2.12.3 2.11.35 2.12.2 2.12.1 2.11.34 2.11.33 2.11.32 2.11.31 2.11.30 1.3.16 1.3.17 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 All 292 releases
usc-e-shop / functions / paypal_func.php

paypal_func.php in Welcart e-Commerce 1.3.17, at functions/paypal_func.php

547 lines 23.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 $usces_payment = false;
3 $payments = usces_get_system_option( 'usces_payment_method', 'sort' );
4 foreach( (array)$payments as $id => $payment ) {
5 if( 'acting_paypal_ec' == $payment['settlement'] ) { $usces_payment = true; break; }
6 }
7 if( $usces_payment ) {
8 add_action( 'init', 'usces_paypal_add_stylesheet' );
9 add_action( 'usces_after_main', 'usces_paypal_add_script' );
10 add_action( 'usces_front_ajax', 'usces_paypal_front_ajax' );
11 add_filter( 'usces_filter_uscesL10n', 'usces_paypal_filter_uscesL10n' );
12 add_filter( 'usces_filter_paypal_ec_cancelurl', 'usces_paypal_filter_paypal_ec_cancelurl', 10, 2 );
13 add_action( 'usces_action_cart_page_footer', 'usces_paypal_action_cart_page_footer' );
14 //add_filter( 'usces_filter_cart_page_footer', 'usces_paypal_filter_cart_page_footer' );
15 add_filter( 'usces_filter_cartContent', 'usces_paypal_filter_cart_page_footer' );
16 add_action( 'usces_action_customerinfo', 'usces_paypal_action_customerinfo' );
17 }
18
19 function usces_paypal_add_stylesheet() {
20 global $usces;
21 if( $usces->is_cart_page($_SERVER['REQUEST_URI']) ) {
22 $jquery_ui_style_url = USCES_FRONT_PLUGIN_URL.'/css/jquery/jquery-ui-1.10.3.custom.min.css';
23 $jquery_usces_paypal_style_url = USCES_FRONT_PLUGIN_URL.'/css/usces_paypal_style.css';
24 wp_register_style( 'jquery-ui-style', $jquery_ui_style_url );
25 wp_register_style( 'usces_paypal_style', $jquery_usces_paypal_style_url );
26 wp_enqueue_style( 'jquery-ui-style' );
27 wp_enqueue_style( 'usces_paypal_style' );
28 }
29 }
30
31 function usces_paypal_add_script() {
32 global $usces;
33 if( $usces->is_cart_page($_SERVER['REQUEST_URI']) ) {
34 wp_enqueue_script( 'jquery-ui-dialog' );
35 }
36 }
37
38 function usces_paypal_filter_uscesL10n() {
39 global $usces;
40 if( $usces->is_cart_page($_SERVER['REQUEST_URI']) ) {
41 echo "'frontAjaxUrl': '".USCES_SSL_URL."',\n";
42 }
43 }
44
45 function usces_paypal_action_cart_page_footer() {
46 $footer = usces_paypal_cart_page_footer();
47 echo $footer;
48 }
49
50 function usces_paypal_filter_cart_page_footer( $html ) {
51 global $usces;
52 $footer = ( 'cart' == $usces->page ) ? usces_paypal_cart_page_footer( false ) : '';
53 return $html.$footer;
54 }
55
56 function usces_paypal_cart_page_footer( $include = true ) {
57 global $usces;
58 $html = '';
59
60 $member = $usces->get_member();
61 if( !usces_paypal_set_session( $member['ID'] ) ) return $html;
62 if( false === $usces->cart->num_row() ) return $html;
63
64 $usces_entries = $usces->cart->get_entry();
65 $usces->set_cart_fees( $member, $usces_entries );
66
67 $usces_entries = $usces->cart->get_entry();
68 $total_price = $usces_entries['order']['total_items_price'] + $usces_entries['order']['discount'] + $usces_entries['order']['shipping_charge'] + $usces_entries['order']['cod_fee'];
69 $item_price = $usces_entries['order']['total_items_price'] + $usces_entries['order']['discount'];
70
71 if( $include ) {
72 include( USCES_PLUGIN_DIR."/includes/delivery_info_script.php" );
73 } else {
74 ob_start();
75 include( USCES_PLUGIN_DIR."/includes/delivery_info_script.php" );
76 $html .= ob_get_clean();
77 }
78
79 $html .= '
80 <script type="text/javascript">
81 jQuery(function($) {
82 paypalfunc = {
83 settings: {
84 url: uscesL10n.frontAjaxUrl + "/",
85 type: "POST",
86 cache: false,
87 error: function( res, dataType ) {
88 alert( "Ajax error" );
89 }
90 },
91 deliveryMethodSelect: function() {
92 var s = this.settings;
93 s.data = "usces_ajax_action=paypal_delivery_method&selected=" + $("#delivery_method_select option:selected").val() + "&delivery_date=" + $("#delivery_date_select").val() + "&delivery_time=" + $("#delivery_time_select").val();
94 s.success = function( res, dataType ) {
95 var r = res.split( "#usces#" );
96 if( r[0] == "error" ) {
97 $("#paypal_error_message_delivery_method").html( r[1] );
98 } else {
99 $("#paypal_error_message_delivery_method").empty();
100 $("#paypal_confirm").empty();
101 $("#paypal_purchase").empty();
102 $("#paypal_confirm").html( r[1] );
103 $("#paypal_purchase").html( r[2] );
104 $("#delivery_date_select").bind("change", function(){ this.deliveryDateSelect(); });
105 $("#delivery_time_select").bind("change", function(){ this.deliveryTimeSelect(); });
106 }
107 };
108 $.ajax( s );
109 return false;
110 },
111 deliveryDateSelect: function() {
112 var s = this.settings;
113 s.data = "usces_ajax_action=paypal_delivery_date_select&selected=" + $("#delivery_date_select option:selected").val();
114 s.success = function( res, dataType ) {
115 };
116 $.ajax( s );
117 return false;
118 },
119 deliveryTimeSelect: function() {
120 var s = this.settings;
121 s.data = "usces_ajax_action=paypal_delivery_time_select&selected=" + $("#delivery_time_select option:selected").val();
122 s.success = function( res, dataType ) {
123 };
124 $.ajax( s );
125 return false;
126 },
127 usePoint: function() {
128 var s = this.settings;
129 s.data = "usces_ajax_action=paypal_use_point&usepoint=" + $("#set_usedpoint").val() + "&total_price='.$total_price.'&item_price='.$item_price.'";
130 s.success = function( res, dataType ) {
131 var r = res.split( "#usces#" );
132 if( r[0] == "error" ) {
133 $("#paypal_error_message_use_point").html( r[1] );
134 } else {
135 $("#paypal_error_message_use_point").empty();
136 $("#paypal_confirm").empty();
137 $("#paypal_purchase").empty();
138 $("#paypal_confirm").html( r[1] );
139 $("#paypal_purchase").html( r[2] );
140 $("#delivery_date_select").bind("change", function(){ this.deliveryDateSelect(); });
141 $("#delivery_time_select").bind("change", function(){ this.deliveryTimeSelect(); });
142 }
143 };
144 $.ajax( s );
145 return false;
146 }
147 };
148 $("#paypal_dialog").dialog({
149 bgiframe: true,
150 autoOpen: false,
151 height: "auto",
152 width: 400,
153 resizable: true,
154 modal: true,
155 position: ["top",100],
156 open: function( event, ui ) {
157 $(".ui-dialog-titlebar", ui.panel).hide();
158 }
159 });
160 $("#paypal_button").click( function() {
161 $("#paypal_dialog").dialog( "open" );
162 });
163 $("#paypal_close").click( function() {
164 $("#paypal_dialog").dialog( "close" );
165 });
166 if( $("#delivery_method_select option").length > 1 ) {
167 $("#delivery_method_select").bind("change", function(){ paypalfunc.deliveryMethodSelect(); });
168 }
169 $("#delivery_date_select").bind("change", function(){ paypalfunc.deliveryDateSelect(); });
170 $("#delivery_time_select").bind("change", function(){ paypalfunc.deliveryTimeSelect(); });
171 if( $("#paypal_use_point") != undefined ) {
172 $("#paypal_use_point").bind("click", function(){ paypalfunc.usePoint(); });
173 }
174 });
175 </script>
176 <div class="send"><input type="image" src="https://www.paypal.com/'.( USCES_JP ? 'ja_JP/JP' : 'en_US' ).'/i/btn/btn_xpressCheckout.gif" border="0" class="paypal_button" id="paypal_button" alt="PayPal" /></div>
177 <div id="paypal_dialog">
178 <div id="paypal_confirm">'.usces_paypal_confirm_form().'</div>
179 <div id="paypal_shipping">'.usces_paypal_shipping_form().'</div>
180 <div id="paypal_point">'.usces_paypal_point_form( $member['point'] ).'</div>
181 <div id="paypal_purchase">'.usces_paypal_purchase_form().'</div>
182 <div class="send"><input name="paypal_close" type="button" id="paypal_close" class="back_to_delivery_button" value="'.__('Cancel', 'usces').'" /></div>
183 </div>';
184
185 return $html;
186 }
187
188 function usces_paypal_set_session( $member_id, $uscesid = NULL ) {
189 global $usces, $wpdb;
190
191 $member_table = $wpdb->prefix."usces_member";
192 $query = $wpdb->prepare( "SELECT * FROM $member_table WHERE ID = %d", $member_id );
193 $member = $wpdb->get_row( $query, ARRAY_A );
194 if( empty($member) ) return false;
195
196 $_SESSION['usces_member']['ID'] = $member['ID'];
197 $_SESSION['usces_member']['mailaddress1'] = $member['mem_email'];
198 $_SESSION['usces_member']['mailaddress2'] = $member['mem_email'];
199 $_SESSION['usces_member']['point'] = $member['mem_point'];
200 $_SESSION['usces_member']['name1'] = $member['mem_name1'];
201 $_SESSION['usces_member']['name2'] = $member['mem_name2'];
202 $_SESSION['usces_member']['name3'] = $member['mem_name3'];
203 $_SESSION['usces_member']['name4'] = $member['mem_name4'];
204 $_SESSION['usces_member']['zipcode'] = $member['mem_zip'];
205 $_SESSION['usces_member']['pref'] = $member['mem_pref'];
206 $_SESSION['usces_member']['address1'] = $member['mem_address1'];
207 $_SESSION['usces_member']['address2'] = $member['mem_address2'];
208 $_SESSION['usces_member']['address3'] = $member['mem_address3'];
209 $_SESSION['usces_member']['tel'] = $member['mem_tel'];
210 $_SESSION['usces_member']['fax'] = $member['mem_fax'];
211 $_SESSION['usces_member']['delivery_flag'] = $member['mem_delivery_flag'];
212 $_SESSION['usces_member']['delivery'] = ( !empty($member['mem_delivery']) ) ? unserialize($member['mem_delivery']) : '';
213 $_SESSION['usces_member']['registered'] = $member['mem_registered'];
214 $_SESSION['usces_member']['nicename'] = $member['mem_nicename'];
215 $_SESSION['usces_member']['country'] = $usces->get_member_meta_value( 'customer_country', $member['ID'] );
216 $_SESSION['usces_member']['status'] = $member['mem_status'];
217 $usces->set_session_custom_member( $member['ID'] );
218
219 foreach( $_SESSION['usces_member'] as $key => $value ) {
220 if( 'custom_member' == $key ) {
221 foreach( $_SESSION['usces_member']['custom_member'] as $mbkey => $mbvalue ) {
222 //if( empty($_SESSION['usces_entry']['custom_customer'][$mbkey]) ) {
223 if( is_array($mbvalue) ) {
224 foreach( $mbvalue as $k => $v ) {
225 $_SESSION['usces_entry']['custom_customer'][$mbkey][$v] = $v;
226 }
227 } else {
228 $_SESSION['usces_entry']['custom_customer'][$mbkey] = $mbvalue;
229 }
230 //}
231 }
232 } else {
233 if( 'country' == $key and empty( $value ) ) {
234 $_SESSION['usces_entry']['customer'][$key] = usces_get_base_country();
235 } else {
236 $_SESSION['usces_entry']['customer'][$key] = trim( $value );
237 }
238 }
239 }
240 foreach( $_SESSION['usces_entry']['customer'] as $key => $value ) {
241 if( 'country' == $key and empty( $value ) ) {
242 $_SESSION['usces_entry']['delivery'][$key] = usces_get_base_country();
243 } else {
244 $_SESSION['usces_entry']['delivery'][$key] = trim( $value );
245 }
246 }
247
248 return true;
249 }
250
251 function usces_paypal_confirm_form() {
252 global $usces;
253
254 $usces_entries = $usces->cart->get_entry();
255 $html = '
256 <table>
257 <tr>
258 <th>'.__('total items', 'usces').'</th>
259 <td>'.usces_crform( $usces_entries['order']['total_items_price'], true, false, 'return', true ).'</td>
260 </tr>';
261 if( usces_is_member_system_point() && !empty($usces_entries['order']['usedpoint']) ) {
262 $html .= '
263 <tr>
264 <th>'.__('Used points', 'usces').'</th>
265 <td><span class="confirm_usedpoint">'.usces_crform( $usces_entries['order']['usedpoint'], false, false, 'return', true ).'</span></td>
266 </tr>';
267 }
268 if( !empty($usces_entries['order']['discount']) ) {
269 $html .= '
270 <tr>
271 <th>'.apply_filters( 'usces_confirm_discount_label', __('Campaign disnount', 'usces') ).'</th>
272 <td>'.usces_crform( $usces_entries['order']['discount'], true, false, 'return', true ).'</td>
273 </tr>';
274 }
275 $html .= '
276 <tr>
277 <th>'.__('Shipping', 'usces').'</th>
278 <td>'.usces_crform( $usces_entries['order']['shipping_charge'], true, false, 'return', true ).'</td>
279 </tr>';
280 if( !empty($usces_entries['order']['cod_fee']) ) {
281 $html .= '
282 <tr>
283 <th>'.apply_filters( 'usces_filter_cod_label', __('COD fee', 'usces') ).'</th>
284 <td>'.usces_crform( $usces_entries['order']['cod_fee'], true, false, 'return', true ).'</td>
285 </tr>';
286 }
287 if( !empty($usces_entries['order']['tax']) ) {
288 $html .= '
289 <tr>
290 <th>'.__('consumption tax', 'usces').'</th>
291 <td>'.usces_crform( $usces_entries['order']['tax'], true, false, 'return', true ).'</td>
292 </tr>';
293 }
294 $html .= '
295 <tr>
296 <th>'.__('Total Amount', 'usces').'</th>
297 <td>'.usces_crform( $usces_entries['order']['total_full_price'], true, false, 'return', true ).'</td>
298 </tr>
299 </table>';
300 return $html;
301 }
302
303 function usces_paypal_shipping_form() {
304 global $usces;
305
306 $html = '';
307 $cart = $usces->cart->get_cart();
308 if( 'shipped' == $usces->getItemDivision( $cart[0]['post_id'] ) ) {
309 $usces_entries = $usces->cart->get_entry();
310 $html = '
311 <div class="error_message" id="paypal_error_message_delivery_method"></div>
312 <table>
313 <tr>
314 <th>'.__('shipping option', 'usces').'</th>
315 <td>'.usces_the_delivery_method( $usces_entries['order']['delivery_method'], 'return' ).'</td>
316 </tr>
317 <tr>
318 <th>'.__('Delivery date', 'usces').'</th>
319 <td>'.usces_the_delivery_date( $usces_entries['order']['delivery_date'], 'return' ).'</td>
320 </tr>
321 <tr>
322 <th>'.__('Delivery Time', 'usces').'</th>
323 <td>'.usces_the_delivery_time( $usces_entries['order']['delivery_time'], 'return' ).'</td>
324 </tr>
325 </table>';
326 }
327 return $html;
328 }
329
330 function usces_paypal_point_form( $point ) {
331 global $usces;
332
333 $html = '';
334 if( usces_is_member_system_point() ) {
335 $usces_entries = $usces->cart->get_entry();
336 $usedpoint = ( 0 < $usces_entries['order']['usedpoint'] ) ? $usces_entries['order']['usedpoint'] : '';
337 $html = '
338 <div class="error_message" id="paypal_error_message_use_point"></div>
339 <table>
340 <tr>
341 <th>'.__('The current point', 'usces').'</th>
342 <td><span class="point">'.$point.'</span>pt</td>
343 </tr>
344 <tr>
345 <th>'.__('Points you are using here', 'usces').'</th>
346 <td><input name="offer[usedpoint]" class="used_point" id="set_usedpoint" type="text" value="'.$usedpoint.'" />pt</td>
347 </tr>
348 <tr>
349 <td colspan="2"><input name="use_point" type="button" class="use_point_button" id="paypal_use_point" value="'.__('Use the points', 'usces').'" /></td>
350 </tr>
351 </table>';
352 }
353 return $html;
354 }
355
356 function usces_paypal_purchase_form() {
357 global $usces, $payments;
358
359 $usces_entries = $usces->cart->get_entry();
360 $acting_opts = $usces->options['acting_settings']['paypal'];
361 $currency_code = $usces->get_currency_code();
362
363 $payment_paypal = array();
364 foreach( (array)$payments as $id => $payment ) {
365 if( 'acting_paypal_ec' == $payment['settlement'] ) {
366 $usces->cart->set_order_entry( array( 'payment_name' => $payment['name'] ) );
367 $payment_paypal = $payment;
368 break;
369 }
370 }
371 $acting_flag = 'acting_paypal_ec';
372 $rand = usces_rand();
373 //$purchase_disabled = ( '' != $usces->error_message ) ? ' disabled="true"' : '';
374 $purchase_disabled = '';
375
376 $cart = $usces->cart->get_cart();
377 $html = '
378 <form id="purchase_form" action="'.USCES_CART_URL.'" method="post" onKeyDown="if (event.keyCode == 13) {return false;}">
379 <input type="hidden" name="SOLUTIONTYPE" value="Sole">
380 <input type="hidden" name="LANDINGPAGE" value="Billing">
381 <input type="hidden" name="EMAIL" value="'.esc_attr( $usces_entries['customer']['mailaddress1'] ).'">
382 <input type="hidden" name="PAYMENTREQUEST_0_CURRENCYCODE" value="'.$currency_code.'">';
383 if( 'shipped' == $usces->getItemDivision( $cart[0]['post_id'] ) ) {
384 $name = apply_filters( 'usces_filter_paypalec_shiptoname', esc_attr( $usces_entries['delivery']['name2'].' '.$usces_entries['delivery']['name1'] ) );
385 $address2 = apply_filters( 'usces_filter_paypalec_shiptostreet', esc_attr( $usces_entries['delivery']['address2'] ) );
386 $address3 = apply_filters( 'usces_filter_paypalec_shiptostreet2', esc_attr( $usces_entries['delivery']['address3'] ) );
387 $address1 = apply_filters( 'usces_filter_paypalec_shiptocity', esc_attr( $usces_entries['delivery']['address1'] ) );
388 $pref = apply_filters( 'usces_filter_paypalec_shiptostate', esc_attr( $usces_entries['delivery']['pref'] ) );
389 $country = ( !empty($usces_entries['delivery']['country']) ) ? $usces_entries['delivery']['country'] : usces_get_base_country();
390 $country_code = apply_filters( 'usces_filter_paypalec_shiptocountrycode', $country );
391 $zip = apply_filters( 'usces_filter_paypalec_shiptozip', $usces_entries['delivery']['zipcode'] );
392 $tel = apply_filters( 'usces_filter_paypalec_shiptophonenum', ltrim( str_replace( '-', '', $usces_entries['delivery']['tel'] ), '0' ) );
393 $html .= '
394 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTONAME" value="'.$name.'">
395 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOSTREET" value="'.$address2.'">
396 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOSTREET2" value="'.$address3.'">
397 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOCITY" value="'.$address1.'">
398 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOSTATE" value="'.$pref.'">
399 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE" value="'.$country_code.'">
400 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOZIP" value="'.$zip.'">
401 <input type="hidden" name="PAYMENTREQUEST_0_SHIPTOPHONENUM" value="'.$tel.'">';
402 }
403 if( 'shipped' != $usces->getItemDivision( $cart[0]['post_id'] ) ) {
404 $html .= '<input type="hidden" name="NOSHIPPING" value="1">';
405 }
406 $charging_type = $usces->getItemChargingType( $cart[0]['post_id'], $cart );
407 if( 'continue' != $charging_type ) {
408 //通常購�
409
410 $item_total_price = 0;
411 $i = 0;
412 foreach( $cart as $cart_row ) {
413 $html .= '
414 <input type="hidden" name="L_PAYMENTREQUEST_0_NAME'.$i.'" value="'.esc_attr( $usces->getItemName($cart_row['post_id']) ).'">
415 <input type="hidden" name="L_PAYMENTREQUEST_0_AMT'.$i.'" value="'.usces_crform( $cart_row['price'], false, false, 'return', false ) .'">
416 <input type="hidden" name="L_PAYMENTREQUEST_0_NUMBER'.$i.'" value="'.esc_attr( $usces->getItemCode($cart_row['post_id']) ).'">
417 <input type="hidden" name="L_PAYMENTREQUEST_0_QTY'.$i.'" value="'.esc_attr( $cart_row['quantity'] ).'">';
418 $item_total_price += ( $cart_row['price'] * $cart_row['quantity'] );
419 $i++;
420 }
421 if( !empty($usces_entries['order']['discount']) ) {
422 $html .= '
423 <input type="hidden" name="L_PAYMENTREQUEST_0_NAME'.$i.'" value="'.esc_attr( __('Campaign disnount', 'usces') ).'">
424 <input type="hidden" name="L_PAYMENTREQUEST_0_AMT'.$i.'" value="'.usces_crform( $usces_entries['order']['discount'], false, false, 'return', false ).'">';
425 $item_total_price += $usces_entries['order']['discount'];
426 $i++;
427 }
428 if( !empty($usces_entries['order']['usedpoint']) ) {
429 $html .= '
430 <input type="hidden" name="L_PAYMENTREQUEST_0_NAME'.$i.'" value="'.esc_attr(__('Used points', 'usces')).'">
431 <input type="hidden" name="L_PAYMENTREQUEST_0_AMT'.$i.'" value="'.usces_crform( $usces_entries['order']['usedpoint']*(-1), false, false, 'return', false ).'">';
432 $item_total_price -= $usces_entries['order']['usedpoint'];
433 $i++;
434 }
435 $html .= '
436 <input type="hidden" name="PAYMENTREQUEST_0_ITEMAMT" value="'.usces_crform( $item_total_price, false, false, 'return', false ).'">
437 <input type="hidden" name="PAYMENTREQUEST_0_SHIPPINGAMT" value="'.usces_crform( $usces_entries['order']['shipping_charge'], false, false, 'return', false ).'">
438 <input type="hidden" name="PAYMENTREQUEST_0_AMT" value="'.usces_crform( $usces_entries['order']['total_full_price'], false, false, 'return', false ).'">
439 ';
440 if( !empty($usces_entries['order']['cod_fee']) ) $html .= '<input type="hidden" name="PAYMENTREQUEST_0_HANDLINGAMT" value="'.usces_crform( $usces_entries['order']['cod_fee'], false, false, 'return', false ).'">';
441 if( !empty($usces_entries['order']['tax']) ) $html .= '<input type="hidden" name="PAYMENTREQUEST_0_TAXAMT" value="'.usces_crform( $usces_entries['order']['tax'], false, false, 'return', false ).'">';
442 } else {
443 //定期支払い
444 $desc = usces_make_agreement_description( $cart, $usces_entries['order']['total_full_price'] );
445 $html .= '<input type="hidden" name="L_BILLINGTYPE0" value="RecurringPayments">
446 <input type="hidden" name="L_BILLINGAGREEMENTDESCRIPTION0" value="'.esc_attr($desc).'">
447 <input type="hidden" name="AMT" value="0">';
448 }
449 if( !empty($acting_opts['logoimg']) ) $html .= '<input type="hidden" name="LOGOIMG" value="'.esc_attr( $acting_opts['logoimg'] ).'">';
450 if( !empty($acting_opts['cartbordercolor']) ) $html .= '<input type="hidden" name="CARTBORDERCOLOR" value="'.esc_attr( $acting_opts['cartbordercolor'] ).'">';
451 $html .= '<input type="hidden" name="purchase" value="acting_paypal_ec">';
452 $html .= '<input type="hidden" name="paypal_from_cart" value="1">';
453 $html .= '<div class="send"><input type="image" src="https://www.paypal.com/'.( USCES_JP ? 'ja_JP/JP' : 'en_US' ).'/i/btn/btn_xpressCheckout.gif" border="0" name="submit" value="submit" alt="PayPal"'.apply_filters( 'usces_filter_confirm_nextbutton', NULL ).$purchase_disabled.' /></div>';
454 $html = apply_filters( 'usces_filter_confirm_inform', $html, $payment_paypal, $acting_flag, $rand, $purchase_disabled );
455 $html .= '</form>';
456 return $html;
457 }
458
459 function usces_paypal_front_ajax() {
460 switch( $_POST['usces_ajax_action'] ) {
461 case 'paypal_delivery_method':
462 usces_paypal_delivery_method( $_POST['selected'], $_POST['delivery_date'], $_POST['delivery_time'] );
463 break;
464 case 'paypal_use_point':
465 usces_paypal_use_point( $_POST['usepoint'], $_POST['total_price'], $_POST['item_price'] );
466 break;
467 case 'paypal_delivery_date_select':
468 usces_paypal_delivery_date_select( $_POST['selected'] );
469 break;
470 case 'paypal_delivery_time_select':
471 usces_paypal_delivery_time_select( $_POST['selected'] );
472 break;
473 }
474 }
475
476 function usces_paypal_delivery_method( $delivery_method_select, $delivery_date, $delivery_time ) {
477 global $usces;
478
479 $usces_entries = $usces->cart->get_entry();
480 $usces->cart->set_order_entry( array( 'delivery_method' => $delivery_method_select, 'delivery_date' => $delivery_date, 'delivery_time' => $delivery_time ) );
481 $usces_entries['order']['delivery_method'] = $delivery_method_select;
482 $usces->set_cart_fees( $member, $usces_entries );
483 $res = "ok#usces#".usces_paypal_confirm_form()."#usces#".usces_paypal_purchase_form();
484 die( $res );
485 }
486
487 function usces_paypal_use_point( $usepoint, $total_price, $item_price ) {
488 global $usces;
489
490 $res = '';
491 $mes = '';
492 $member = $usces->get_member();
493 $usces_entries = $usces->cart->get_entry();
494
495 if( WCUtils::is_blank( $usepoint ) || !preg_match( "/^[0-9]+$/", $usepoint ) || (int)$usepoint < 0 ) {
496 $mes = __('Invalid value. Please enter in the numbers.', 'usces');
497 } else {
498 if( $usepoint > (int)$member['point'] ) {
499 $mes = __('You have exceeded the maximum available.', 'usces')."max".(int)$member['point']."pt";
500 } elseif( $usces->options['point_coverage'] && $usepoint > $total_price ) {
501 $mes = __('You have exceeded the maximum available.', 'usces')."max".$total_price."pt";
502 } elseif( !$usces->options['point_coverage'] && $usepoint > $item_price ) {
503 $mes = __('You have exceeded the maximum available.', 'usces')."max".$item_price."pt";
504 }
505 }
506 if( '' != $mes ) {
507 $usces->cart->set_order_entry( array( 'usedpoint' => 0 ) );
508 $res = "error#usces#".$mes;
509 } else {
510 $usces->cart->set_order_entry( array( 'usedpoint' => $usepoint ) );
511 $usces_entries['order']['usedpoint'] = $usepoint;
512 $usces->set_cart_fees( $member, $usces_entries );
513 $res = "ok#usces#".usces_paypal_confirm_form()."#usces#".usces_paypal_purchase_form();
514 }
515 die( $res );
516 }
517
518 function usces_paypal_filter_paypal_ec_cancelurl( $cancelurl, $query ) {
519 global $usces;
520 $pos = strpos( $query, 'paypal_from_cart' );
521 if( false !== $pos ) {
522 $cancelurl = urlencode( USCES_CART_URL );
523 }
524 return $cancelurl;
525 }
526
527 function usces_paypal_delivery_date_select( $selected ) {
528 global $usces;
529 $usces->cart->set_order_entry( array( 'delivery_date' => $selected ) );
530 die( "ok" );
531 }
532
533 function usces_paypal_delivery_time_select( $selected ) {
534 global $usces;
535 $usces->cart->set_order_entry( array( 'delivery_time' => $selected ) );
536 die( "ok" );
537 }
538
539 function usces_paypal_action_customerinfo() {
540 global $usces;
541 if( $usces->is_member_logged_in() ) {
542 $usces->cart->set_order_entry( array( 'payment_name' => '' ) );
543 }
544 }
545
546 ?>
547