PluginProbe
Welcart e-Commerce / 1.3.16
Welcart e-Commerce v1.3.16
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.16, at functions/paypal_func.php

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