Make WordPress Core

Ticket #38884: clickandpledge_payment.php

File clickandpledge_payment.php, 78.4 KB (added by krshnkrishna49, 10 years ago)

front end payment page

Line 
1<?php
2/*
3Plugin Name: Click & Pledge WPJobBoard
4Plugin URI: http://manual.clickandpledge.com/WPJobBoard.html
5Description: This plugin is to integrate WPJobBoard Click & Pledge Payment system. Please contact Click & Pledge for assistance, support@clickpledge.com
6Author: Kamran Razvan
7Version: 1.0.0
8Author URI: http://manual.clickandpledge.com/
9*/
10require_once dirname(__FILE__) . '/clickandpledge_admin_controll.php';
11class Payment_ClickandPledge extends Wpjb_Payment_Abstract
12{
13
14function wpjb_payment_clickandpledge($list) {
15 global $wpjobboard;
16
17 //include_once dirname(__FILE__)."/clickandpledge_payment.class.php";
18 $cnp = new Payment_ClickandPledge();
19 //$cnpform = $cnp->render();
20
21 // registers new payment method
22 $list[$cnp->getEngine()] = get_class($cnp);
23 // echo $cnpform;
24 return $list;
25}
26add_filter('wpjb_payments_list', 'wpjb_payment_clickandpledge');
27
28 var $responsecodes = array();
29 public function __construct(Wpjb_Model_Payment $data = null)
30 {
31 $this->_data = $data;
32 add_action('wp_ajax_clickandpledge_transaction', array(
33 __CLASS__,
34 'clickandpledge_transaction'
35 ));
36 add_action('wp_ajax_nopriv_clickandpledge_transaction', array(
37 __CLASS__,
38 'clickandpledge_transaction'
39 ));
40
41 $this->responsecodes = array(
42 2054 => 'Total amount is wrong',
43 2055 => 'AccountGuid is not valid',
44 2056 => 'AccountId is not valid',
45 2057 => 'Username is not valid',
46 2058 => 'Password is not valid',
47 2059 => 'Invalid recurring parameters',
48 2060 => 'Account is disabled',
49 2101 => 'Cardholder information is null',
50 2102 => 'Cardholder information is null',
51 2103 => 'Cardholder information is null',
52 2104 => 'Invalid billing country',
53 2105 => 'Credit Card number is not valid',
54 2106 => 'Cvv2 is blank',
55 2107 => 'Cvv2 length error',
56 2108 => 'Invalid currency code',
57 2109 => 'CreditCard object is null',
58 2110 => 'Invalid card type ',
59 2111 => 'Card type not currently accepted',
60 2112 => 'Card type not currently accepted',
61 2210 => 'Order item list is empty',
62 2212 => 'CurrentTotals is null',
63 2213 => 'CurrentTotals is invalid',
64 2214 => 'TicketList lenght is not equal to quantity',
65 2215 => 'NameBadge lenght is not equal to quantity',
66 2216 => 'Invalid textonticketbody',
67 2217 => 'Invalid textonticketsidebar',
68 2218 => 'Invalid NameBadgeFooter',
69 2304 => 'Shipping CountryCode is invalid',
70 2305 => 'Shipping address missed',
71 2401 => 'IP address is null',
72 2402 => 'Invalid operation',
73 2501 => 'WID is invalid',
74 2502 => 'Production transaction is not allowed. Contact support for activation.',
75 2601 => 'Invalid character in a Base-64 string',
76 2701 => 'ReferenceTransaction Information Cannot be NULL',
77 2702 => 'Invalid Refrence Transaction Information',
78 2703 => 'Expired credit card',
79 2805 => 'eCheck Account number is invalid',
80 2807 => 'Invalid payment method',
81 2809 => 'Invalid payment method',
82 2811 => 'eCheck payment type is currently not accepted',
83 2812 => 'Invalid check number',
84 1001 => 'Internal error. Retry transaction',
85 1002 => 'Error occurred on external gateway please try again',
86 2001 => 'Invalid account information',
87 2002 => 'Transaction total is not correct',
88 2003 => 'Invalid parameters',
89 2004 => 'Document is not a valid xml file',
90 2005 => 'OrderList can not be empty',
91 3001 => 'Invalid RefrenceTransactionID',
92 3002 => 'Invalid operation for this transaction',
93 4001 => 'Fraud transaction',
94 4002 => 'Duplicate transaction',
95 5001 => 'Declined (general)',
96 5002 => 'Declined (lost or stolen card)',
97 5003 => 'Declined (fraud)',
98 5004 => 'Declined (Card expired)',
99 5005 => 'Declined (Cvv2 is not valid)',
100 5006 => 'Declined (Insufficient fund)',
101 5007 => 'Declined (Invalid credit card number)'
102 );
103 }
104 function get_user_ip()
105 {
106 $ipaddress = '';
107 if (isset($_SERVER['HTTP_CLIENT_IP']))
108 $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
109 else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
110 $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
111 else if (isset($_SERVER['HTTP_X_FORWARDED']))
112 $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
113 else if (isset($_SERVER['HTTP_FORWARDED_FOR']))
114 $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
115 else if (isset($_SERVER['HTTP_FORWARDED']))
116 $ipaddress = $_SERVER['HTTP_FORWARDED'];
117 else
118 $ipaddress = $_SERVER['REMOTE_ADDR'];
119 $parts = explode(',', $ipaddress);
120 if (count($parts) > 1)
121 $ipaddress = $parts[0];
122 return $ipaddress;
123 }
124
125 function safeString($str, $length = 1, $start = 0)
126 {
127 $str = preg_replace('/\x03/', '', $str); //Remove new line characters
128 return substr(htmlspecialchars(($str)), $start, $length);
129 }
130
131 public function clickandpledge_transaction()
132 {
133 $post = $_POST;
134 global $wpdb;
135 $orderplacedcheck = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_payment WHERE id = ' . $post['id'], OBJECT);
136 if ($orderplacedcheck) {
137 $post['object_id'] = $orderplacedcheck->object_id;
138 $post['object_type'] = $orderplacedcheck->object_type;
139
140 $classObject = new Payment_ClickandPledge();
141 $strParam = $classObject->buildXML($post);
142 $connect = array(
143 'soap_version' => SOAP_1_1,
144 'trace' => 1,
145 'exceptions' => 0
146 );
147 $client = new SoapClient('https://paas.cloud.clickandpledge.com/paymentservice.svc?wsdl', $connect);
148 $soapParams = array(
149 'instruction' => $strParam
150 );
151 $response = $client->Operation($soapParams);
152 $params = array();
153 if (($response === FALSE)) {
154 $params['error'] = 'Connection to payment gateway failed - no data returned.';
155 $params['ResultCode'] = '99999';
156 $params['status'] = 'Fail';
157 } else {
158 $ResultCode = $response->OperationResult->ResultCode;
159 $transation_number = $response->OperationResult->TransactionNumber;
160 $VaultGUID = $response->OperationResult->VaultGUID;
161
162 if ($ResultCode == '0') {
163 $response_message = $response->OperationResult->ResultData;
164 //Success
165 $params['TransactionNumber'] = $VaultGUID;
166 $params['trxn_result_code'] = $response_message;
167 $params['status'] = 'Success';
168 $params['ResultCode'] = $ResultCode;
169 } else {
170 if (in_array($ResultCode, array(
171 2051,
172 2052,
173 2053
174 ))) {
175 $AdditionalInfo = $response->OperationResult->AdditionalInfo;
176 } else {
177 if (isset($classObject->responsecodes[$ResultCode])) {
178 $AdditionalInfo = $classObject->responsecodes[$ResultCode];
179 } else {
180 $AdditionalInfo = 'Unknown error';
181 }
182 }
183 $params['error'] = $AdditionalInfo;
184 $params['ResultCode'] = $ResultCode;
185 $params['status'] = 'Fail';
186 }
187 }
188 echo json_encode($params);
189 die();
190 }
191 }
192
193 public function buildXML($post)
194 {
195 $params = $post;
196
197 $dom = new DOMDocument('1.0', 'UTF-8');
198 $root = $dom->createElement('CnPAPI', '');
199 $root->setAttribute("xmlns", "urn:APISchema.xsd");
200 $root = $dom->appendChild($root);
201
202 $version = $dom->createElement("Version", "1.5");
203 $version = $root->appendChild($version);
204
205 $engine = $dom->createElement('Engine', '');
206 $engine = $root->appendChild($engine);
207
208 $application = $dom->createElement('Application', '');
209 $application = $engine->appendChild($application);
210
211 $applicationid = $dom->createElement('ID', 'CnP_WPJobBoard_WordPress');
212 $applicationid = $application->appendChild($applicationid);
213
214 $applicationname = $dom->createElement('Name', 'CnP_WPJobBoard_WordPress');
215 $applicationid = $application->appendChild($applicationname);
216
217 $applicationversion = $dom->createElement('Version', '1.0.0.20150604');
218 $applicationversion = $application->appendChild($applicationversion);
219
220 $request = $dom->createElement('Request', '');
221 $request = $engine->appendChild($request);
222
223 $operation = $dom->createElement('Operation', '');
224 $operation = $request->appendChild($operation);
225
226 $operationtype = $dom->createElement('OperationType', 'Transaction');
227 $operationtype = $operation->appendChild($operationtype);
228
229 if ($this->get_user_ip() != '') {
230 $ipaddress = $dom->createElement('IPAddress', $this->get_user_ip());
231 $ipaddress = $operation->appendChild($ipaddress);
232 }
233
234 $httpreferrer = $dom->createElement('UrlReferrer', htmlentities($_SERVER['HTTP_REFERER']));
235 $httpreferrer = $operation->appendChild($httpreferrer);
236
237 $authentication = $dom->createElement('Authentication', '');
238 $authentication = $request->appendChild($authentication);
239
240 $accounttype = $dom->createElement('AccountGuid', $params['clickandpledge_AccountGuid']);
241 $accounttype = $authentication->appendChild($accounttype);
242
243 $accountid = $dom->createElement('AccountID', $params['clickandpledge_AccountID']);
244 $accountid = $authentication->appendChild($accountid);
245
246 $order = $dom->createElement('Order', '');
247 $order = $request->appendChild($order);
248
249 if ($params['clickandpledge_OrderMode'] == 'test') {
250 $orderMode = 'Test';
251 } else {
252 $orderMode = 'Production';
253 }
254 $ordermode = $dom->createElement('OrderMode', $orderMode);
255 $ordermode = $order->appendChild($ordermode);
256
257 global $wpdb;
258 $paymentdetails = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_payment WHERE id = ' . $params['id'], OBJECT);
259 //Object Type:1-wpjb_job, 2 - wpjb_resume, 3 - wpjb_membership
260 $orderdetails = array();
261 $orderdetails['BillingEmail'] = $paymentdetails->email;
262 $orderdetails['CustomFields'] = array();
263 $order_custom_fields = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'wpjb_meta meta INNER JOIN ' . $wpdb->prefix . 'wpjb_meta_value meta_value ON meta.id=meta_value.meta_id WHERE meta.meta_type=3 AND meta_value.object_id = ' . $params['object_id'] . ' ORDER BY meta_value.meta_id ASC', OBJECT);
264 if (count($order_custom_fields) > 0) {
265 $oldname = $strval = '';
266 $fieldindex = 0;
267 foreach ($order_custom_fields as $single_row) {
268 $fieldindex++;
269 if ($oldname == '')
270 $oldname = $single_row->name;
271 if ($oldname != $single_row->name) {
272 $orderdetails['CustomFields'][$oldname] = substr($strval, 0, -1);
273 $strval = '';
274 }
275 if (count($order_custom_fields) == $fieldindex) {
276 $orderdetails['CustomFields'][$single_row->name] = $single_row->value;
277 }
278 $strval .= $single_row->value . ',';
279 $oldname = $single_row->name;
280 }
281 }
282 if (isset($post['clickandpledge_listing_id']) && $post['clickandpledge_listing_id'] != '') {
283 $parts = explode('_', $post['clickandpledge_listing_id']);
284 if (count($parts) == 3) {
285 $listid = $parts[2];
286 if ($listid != '') {
287 $listrow = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_pricing WHERE id = ' . $listid, OBJECT);
288 if ($listrow != '') {
289 $orderdetails['CustomFields']['Listing Type'] = $listrow->title;
290 }
291 }
292 }
293 }
294 if ($params['object_type'] == 1) {
295 $orderplaced = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_job WHERE id = ' . $params['object_id'], OBJECT);
296 $orderdetails['ItemName'] = 'Job: ' . $orderplaced->job_title;
297 if ($orderplaced->job_description != '')
298 $orderdetails['CustomFields']['Description'] = $orderplaced->job_description;
299 if ($orderplaced->job_country != '') {
300 $countries = Wpjb_List_Country::getAll();
301 if (count($countries) > 0) {
302 foreach ($countries as $country) {
303 if ($country['code'] == $orderplaced->job_country)
304 $orderdetails['CustomFields']['Job Country'] = $country['name'];
305 }
306 }
307
308 }
309 if ($orderplaced->job_state != '')
310 $orderdetails['CustomFields']['Job State'] = $orderplaced->job_state;
311 if ($orderplaced->job_zip_code != '')
312 $orderdetails['CustomFields']['Job Zip-Code'] = $orderplaced->job_zip_code;
313 if ($orderplaced->job_city != '')
314 $orderdetails['CustomFields']['Job City'] = $orderplaced->job_city;
315 if ($orderplaced->company_name != '')
316 $orderdetails['CustomFields']['Company Name'] = $orderplaced->company_name;
317 if ($orderplaced->company_email != '')
318 $orderdetails['CustomFields']['Contact Email'] = $orderplaced->company_email;
319 if ($orderplaced->company_url != '')
320 $orderdetails['CustomFields']['Website'] = $orderplaced->company_url;
321
322 $job = new Wpjb_Model_Job($params['object_id']);
323 if (isset($job->getTag()->type) && is_array($job->getTag()->type)) {
324 foreach ($job->getTag()->type as $type) {
325 $orderdetails['CustomFields']['Job Type'] = $type->title;
326 }
327 }
328 if (isset($job->tag->category) && is_array($job->tag->category)) {
329 foreach ($job->tag->category as $cat) {
330 $orderdetails['CustomFields']['Category'] = $cat->title;
331 }
332 }
333
334 } else if ($params['object_type'] == 2) { //Resume
335 $orderplaced = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_resume r INNER JOIN ' . $wpdb->prefix . 'posts p ON r.post_id = p.id WHERE r.id = ' . $params['object_id'], OBJECT);
336 if ($orderplaced) {
337 if ($orderplaced->post_title != '') {
338 $orderdetails['ItemName'] = 'Resume: ' . $orderplaced->post_title;
339 } else {
340 $orderdetails['ItemName'] = 'Single Resume Access';
341 }
342 } else {
343 $orderdetails['ItemName'] = 'Single Resume Access';
344 }
345 } else if ($params['object_type'] == 3) { //Membership
346 $orderplaced = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_membership WHERE id = ' . $params['object_id'], OBJECT);
347 if ($orderplaced->package_id != '') {
348 $package = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'wpjb_pricing WHERE id = ' . $orderplaced->package_id, OBJECT);
349 $orderdetails['ItemName'] = 'Membership: ' . $package->title;
350 } else {
351 $orderdetails['ItemName'] = 'Employer Membership Package';
352 }
353 }
354 $UnitPriceCalculate = $TotalDiscountCalculate = 0;
355
356 $cardholder = $dom->createElement('CardHolder', '');
357 $cardholder = $order->appendChild($cardholder);
358
359 $billinginfo = $dom->createElement('BillingInformation', '');
360 $billinginfo = $cardholder->appendChild($billinginfo);
361
362 if (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'CreditCard') {
363 $billfirst_name = $dom->createElement('BillingFirstName', $this->safeString($params['clickandpledge_FirstName_CreditCard'], 50));
364 $billfirst_name = $billinginfo->appendChild($billfirst_name);
365 $billlast_name = $dom->createElement('BillingLastName', $this->safeString($params['clickandpledge_LastName_CreditCard'], 50));
366 $billlast_name = $billinginfo->appendChild($billlast_name);
367 } else if (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'eCheck') {
368 $billfirst_name = $dom->createElement('BillingFirstName', $this->safeString($params['clickandpledge_FirstName_eCheck'], 50));
369 $billfirst_name = $billinginfo->appendChild($billfirst_name);
370 $billlast_name = $dom->createElement('BillingLastName', $this->safeString($params['clickandpledge_LastName_eCheck'], 50));
371 $billlast_name = $billinginfo->appendChild($billlast_name);
372 } else if (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'Invoice') {
373 $billfirst_name = $dom->createElement('BillingFirstName', $this->safeString($params['clickandpledge_FirstName_Invoice'], 50));
374 $billfirst_name = $billinginfo->appendChild($billfirst_name);
375 $billlast_name = $dom->createElement('BillingLastName', $this->safeString($params['clickandpledge_LastName_Invoice'], 50));
376 $billlast_name = $billinginfo->appendChild($billlast_name);
377 } else if (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'PurchaseOrder') {
378 $billfirst_name = $dom->createElement('BillingFirstName', $this->safeString($params['clickandpledge_FirstName_PO'], 50));
379 $billfirst_name = $billinginfo->appendChild($billfirst_name);
380 $billlast_name = $dom->createElement('BillingLastName', $this->safeString($params['clickandpledge_LastName_PO'], 50));
381 $billlast_name = $billinginfo->appendChild($billlast_name);
382 }
383
384 if (isset($orderdetails['BillingEmail']) && $orderdetails['BillingEmail'] != '') {
385 $bill_email = $dom->createElement('BillingEmail', $orderdetails['BillingEmail']);
386 $bill_email = $billinginfo->appendChild($bill_email);
387 }
388 //echo 'SELECT * FROM '.$wpdb->prefix.'wpjb_job WHERE post_id = '.$params['id'];
389 //echo '<pre>';
390 //print_r($orderplaced);
391 //die('fffffffffff');
392 $billingaddress = $dom->createElement('BillingAddress', '');
393 $billingaddress = $cardholder->appendChild($billingaddress);
394
395 if (isset($orderdetails['CustomFields']) && count($orderdetails['CustomFields']) > 0) {
396 $customfieldlist = $dom->createElement('CustomFieldList', '');
397 $customfieldlist = $cardholder->appendChild($customfieldlist);
398
399 foreach ($orderdetails['CustomFields'] as $key => $val) {
400 $customfield = $dom->createElement('CustomField', '');
401 $customfield = $customfieldlist->appendChild($customfield);
402
403 $fieldname = $dom->createElement('FieldName', $key);
404 $fieldname = $customfield->appendChild($fieldname);
405
406 $fieldvalue = $dom->createElement('FieldValue', $this->safeString($val, 500));
407 $fieldvalue = $customfield->appendChild($fieldvalue);
408 }
409 }
410
411 $paymentmethod = $dom->createElement('PaymentMethod', '');
412 $paymentmethod = $cardholder->appendChild($paymentmethod);
413
414 if (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'CreditCard') {
415 $payment_type = $dom->createElement('PaymentType', 'CreditCard');
416 $payment_type = $paymentmethod->appendChild($payment_type);
417
418 $creditcard = $dom->createElement('CreditCard', '');
419 $creditcard = $paymentmethod->appendChild($creditcard);
420 $credit_card_name = '';
421 if (isset($params['clickandpledge_nameOnCard']) && $params['clickandpledge_nameOnCard'] != '') {
422 $credit_card_name .= ' ' . $params['clickandpledge_nameOnCard'];
423 }
424
425 $credit_name = $dom->createElement('NameOnCard', $this->safeString($credit_card_name, 50));
426 $credit_name = $creditcard->appendChild($credit_name);
427
428 $credit_number = $dom->createElement('CardNumber', $this->safeString(str_replace(' ', '', $params['clickandpledge_cardNumber']), 17));
429 $credit_number = $creditcard->appendChild($credit_number);
430
431 $credit_cvv = $dom->createElement('Cvv2', $params['clickandpledge_cvc']);
432 $credit_cvv = $creditcard->appendChild($credit_cvv);
433
434 $credit_expdate = $dom->createElement('ExpirationDate', $params['clickandpledge_cardExpMonth'] . "/" . substr($params['clickandpledge_cardExpYear'], 2, 2));
435 $credit_expdate = $creditcard->appendChild($credit_expdate);
436 } elseif (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'eCheck') {
437 $payment_type = $dom->createElement('PaymentType', 'Check');
438 $payment_type = $paymentmethod->appendChild($payment_type);
439
440 $echeck = $dom->createElement('Check', '');
441 $echeck = $paymentmethod->appendChild($echeck);
442 if (!empty($post['clickandpledge_echeck_AccountNumber'])) {
443 $ecAccount = $dom->createElement('AccountNumber', $this->safeString($post['clickandpledge_echeck_AccountNumber'], 17));
444 $ecAccount = $echeck->appendChild($ecAccount);
445 }
446 if (!empty($post['clickandpledge_echeck_AccountType'])) {
447 $ecAccount_type = $dom->createElement('AccountType', $post['clickandpledge_echeck_AccountType']);
448 $ecAccount_type = $echeck->appendChild($ecAccount_type);
449 }
450 if (!empty($post['clickandpledge_echeck_RoutingNumber'])) {
451 $ecRouting = $dom->createElement('RoutingNumber', $this->safeString($post['clickandpledge_echeck_RoutingNumber'], 9));
452 $ecRouting = $echeck->appendChild($ecRouting);
453 }
454 if (!empty($post['clickandpledge_echeck_CheckNumber'])) {
455 $ecCheck = $dom->createElement('CheckNumber', $this->safeString($post['clickandpledge_echeck_CheckNumber'], 10));
456 $ecCheck = $echeck->appendChild($ecCheck);
457 }
458 if (!empty($post['clickandpledge_echeck_CheckType'])) {
459 $ecChecktype = $dom->createElement('CheckType', $post['clickandpledge_echeck_CheckType']);
460 $ecChecktype = $echeck->appendChild($ecChecktype);
461 }
462 if (!empty($post['clickandpledge_echeck_NameOnAccount'])) {
463 $ecName = $dom->createElement('NameOnAccount', $this->safeString($post['clickandpledge_echeck_NameOnAccount'], 100));
464 $ecName = $echeck->appendChild($ecName);
465 }
466 if (!empty($post['clickandpledge_echeck_IdType'])) {
467 $ecIdtype = $dom->createElement('IdType', $post['clickandpledge_echeck_IdType']);
468 $ecIdtype = $echeck->appendChild($ecIdtype);
469 }
470 if (!empty($post['clickandpledge_echeck_IdNumber'])) {
471 $IdNumber = $dom->createElement('IdNumber', $this->safeString($post['clickandpledge_echeck_IdNumber'], 30));
472 $IdNumber = $creditcard->appendChild($IdNumber);
473 }
474 if (!empty($post['clickandpledge_echeck_IdStateCode'])) {
475 $IdStateCode = $dom->createElement('IdStateCode', $post['clickandpledge_echeck_IdStateCode']);
476 $IdStateCode = $creditcard->appendChild($IdStateCode);
477 }
478 } elseif (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'Invoice') {
479 $payment_type = $dom->createElement('PaymentType', 'Invoice');
480 $payment_type = $paymentmethod->appendChild($payment_type);
481 $invoice = $dom->createElement('Invoice', '');
482 $invoice = $paymentmethod->appendChild($invoice);
483 $CheckNumber = $dom->createElement('InvoiceCheckNumber', $post['InvoiceCheckNumber']);
484 $CheckNumber = $invoice->appendChild($CheckNumber);
485 } elseif (isset($post['clickandpledge_selectedPaymentMethod']) && $post['clickandpledge_selectedPaymentMethod'] == 'PurchaseOrder') {
486 $payment_type = $dom->createElement('PaymentType', 'PurchaseOrder');
487 $payment_type = $paymentmethod->appendChild($payment_type);
488 $PurchaseOrder = $dom->createElement('PurchaseOrder', '');
489 $PurchaseOrder = $paymentmethod->appendChild($PurchaseOrder);
490 $CheckNumber = $dom->createElement('PurchaseOrderNumber', $post['PurchaseOrderNumber']);
491 $CheckNumber = $PurchaseOrder->appendChild($CheckNumber);
492 } else {
493 $payment_type = $dom->createElement('PaymentType', 'CreditCard');
494 $payment_type = $paymentmethod->appendChild($payment_type);
495
496 $creditcard = $dom->createElement('CreditCard', '');
497 $creditcard = $paymentmethod->appendChild($creditcard);
498
499 $credit_card_name = '';
500 if (isset($params['clickandpledge_nameOnCard_First']) && $params['clickandpledge_nameOnCard_First'] != '') {
501 $credit_card_name .= $params['clickandpledge_nameOnCard_First'];
502 }
503 if (isset($params['clickandpledge_nameOnCard_Last']) && $params['clickandpledge_nameOnCard_Last'] != '') {
504 $credit_card_name .= ' ' . $params['clickandpledge_nameOnCard_Last'];
505 }
506
507 $credit_name = $dom->createElement('NameOnCard', $this->safeString($credit_card_name, 50));
508 $credit_name = $creditcard->appendChild($credit_name);
509
510 $credit_number = $dom->createElement('CardNumber', $this->safeString(str_replace(' ', '', $params['clickandpledge_cardNumber']), 17));
511 $credit_number = $creditcard->appendChild($credit_number);
512
513 $credit_cvv = $dom->createElement('Cvv2', $params['clickandpledge_cvc']);
514 $credit_cvv = $creditcard->appendChild($credit_cvv);
515
516 $credit_expdate = $dom->createElement('ExpirationDate', $params['clickandpledge_cardExpMonth'] . "/" . substr($params['clickandpledge_cardExpYear'], 2, 2));
517 $credit_expdate = $creditcard->appendChild($credit_expdate);
518 }
519
520 $orderitemlist = $dom->createElement('OrderItemList', '');
521 $orderitemlist = $order->appendChild($orderitemlist);
522
523 $orderitem = $dom->createElement('OrderItem', '');
524 $orderitem = $orderitemlist->appendChild($orderitem);
525
526 $itemid = $dom->createElement('ItemID', 1);
527 $itemid = $orderitem->appendChild($itemid);
528
529 $itemname = $dom->createElement('ItemName', $this->safeString(trim($orderdetails['ItemName']), 100));
530 $itemname = $orderitem->appendChild($itemname);
531
532 $quntity = $dom->createElement('Quantity', 1);
533 $quntity = $orderitem->appendChild($quntity);
534 $line_subtotal = $params['clickandpledge_Amount'];
535 if (isset($params['clickandpledge_isRecurring']) && $params['clickandpledge_isRecurring'] == 'true') {
536 if ($params['clickandpledge_RecurringMethod'] == 'Installment') {
537 if (isset($params['clickandpledge_indefinite']) && $params['clickandpledge_indefinite'] == 'true') {
538 $UnitPriceDecimal = ($this->number_format(($line_subtotal / 999), 2, '.', '') * 100);
539 $UnitPriceCalculate += ($this->number_format(($line_subtotal / 999), 2, '.', '') * 1);
540 } else {
541 $UnitPriceDecimal = ($this->number_format(($line_subtotal / $params['clickandpledge_Installment']), 2, '.', '') * 100);
542 $UnitPriceCalculate += ($this->number_format(($line_subtotal / $params['clickandpledge_Installment']), 2, '.', '') * 1);
543 }
544 $unitprice = $dom->createElement('UnitPrice', $UnitPriceDecimal);
545 $unitprice = $orderitem->appendChild($unitprice);
546 } else {
547 $unitprice = $dom->createElement('UnitPrice', ($line_subtotal * 100));
548 $unitprice = $orderitem->appendChild($unitprice);
549 //New Fix
550 $UnitPriceCalculate += ($line_subtotal * 1);
551 }
552 } else {
553 $unitprice = $dom->createElement('UnitPrice', ($line_subtotal * 100));
554 $unitprice = $orderitem->appendChild($unitprice);
555 $UnitPriceCalculate += ($line_subtotal * 1);
556 }
557
558 //Discount
559 if ($params['clickandpledge_Discount'] > 0) {
560 $order_discount = $params['clickandpledge_Discount'];
561 if (isset($params['clickandpledge_isRecurring']) && $params['clickandpledge_isRecurring'] == 'true') {
562 if ($params['clickandpledge_RecurringMethod'] == 'Installment') {
563 $TotalDiscount = ($order_discount) / $params['clickandpledge_Installment'];
564 $TotalDiscount = $this->number_format($TotalDiscount, 2, '.', '') * 100;
565 } else {
566 $TotalDiscount = $this->number_format($order_discount, 2, '.', '') * 100;
567 }
568 } else {
569 $TotalDiscount = $this->number_format($order_discount, 2, '.', '') * 100;
570 }
571 if ($TotalDiscount > 0) {
572 $unit_disc = $dom->createElement('UnitDiscount', $TotalDiscount);
573 $unit_disc = $orderitem->appendChild($unit_disc);
574 $TotalDiscountCalculate = $TotalDiscount;
575 }
576 }
577
578 $receipt = $dom->createElement('Receipt', '');
579 $receipt = $order->appendChild($receipt);
580
581 $recipt_lang = $dom->createElement('Language', 'ENG');
582 $recipt_lang = $receipt->appendChild($recipt_lang);
583
584 if (isset($params['clickandpledge_OrganizationInformation']) && $params['clickandpledge_OrganizationInformation'] != '') {
585 $recipt_org = $dom->createElement('OrganizationInformation', $this->safeString($params['clickandpledge_OrganizationInformation'], 1500));
586 $recipt_org = $receipt->appendChild($recipt_org);
587 }
588
589 if (isset($params['clickandpledge_TermsCondition']) && $params['clickandpledge_TermsCondition'] != '') {
590 $recipt_terms = $dom->createElement('TermsCondition', $this->safeString($params['clickandpledge_TermsCondition'], 1500));
591 $recipt_terms = $receipt->appendChild($recipt_terms);
592 }
593
594 if (isset($params['clickandpledge_email_customer']) && $params['clickandpledge_email_customer'] == 'yes') { //Sending the email based on admin settings
595 $recipt_email = $dom->createElement('EmailNotificationList', '');
596 $recipt_email = $receipt->appendChild($recipt_email);
597
598 $email_notification = '';
599 if (isset($params['billing_email']) && $params['billing_email'] != '') {
600 $email_notification = $params['billing_email'];
601 }
602
603 $email_note = $dom->createElement('NotificationEmail', $email_notification);
604 $email_note = $recipt_email->appendChild($email_note);
605 }
606 $transation = $dom->createElement('Transaction', '');
607 $transation = $order->appendChild($transation);
608
609 $trans_type = $dom->createElement('TransactionType', 'Payment');
610 $trans_type = $transation->appendChild($trans_type);
611
612 $trans_desc = $dom->createElement('DynamicDescriptor', 'DynamicDescriptor');
613 $trans_desc = $transation->appendChild($trans_desc);
614
615
616 if (isset($params['clickandpledge_isRecurring']) && $params['clickandpledge_isRecurring'] == 'true') {
617 $trans_recurr = $dom->createElement('Recurring', '');
618 $trans_recurr = $transation->appendChild($trans_recurr);
619 if (isset($params['clickandpledge_indefinite']) && $params['clickandpledge_indefinite'] == 'true') {
620 $total_installment = $dom->createElement('Installment', 999);
621 $total_installment = $trans_recurr->appendChild($total_installment);
622 } else {
623 if ($params['clickandpledge_Installment'] != '') {
624 $total_installment = $dom->createElement('Installment', $params['clickandpledge_Installment']);
625 $total_installment = $trans_recurr->appendChild($total_installment);
626 } else {
627 $total_installment = $dom->createElement('Installment', 1);
628 $total_installment = $trans_recurr->appendChild($total_installment);
629 }
630 }
631 $total_periodicity = $dom->createElement('Periodicity', $params['clickandpledge_Periodicity']);
632 $total_periodicity = $trans_recurr->appendChild($total_periodicity);
633
634 if (isset($params['clickandpledge_RecurringMethod'])) {
635 $RecurringMethod = $dom->createElement('RecurringMethod', $params['clickandpledge_RecurringMethod']);
636 $RecurringMethod = $trans_recurr->appendChild($RecurringMethod);
637 } else {
638 $RecurringMethod = $dom->createElement('RecurringMethod', 'Subscription');
639 $RecurringMethod = $trans_recurr->appendChild($RecurringMethod);
640 }
641 }
642
643 $trans_totals = $dom->createElement('CurrentTotals', '');
644 $trans_totals = $transation->appendChild($trans_totals);
645 if ($TotalDiscountCalculate > 0) {
646 $total_discount = $dom->createElement('TotalDiscount', $TotalDiscountCalculate);
647 $total_discount = $trans_totals->appendChild($total_discount);
648 }
649
650 if (isset($params['clickandpledge_isRecurring']) && $params['clickandpledge_isRecurring'] == 'true') {
651 if ($params['clickandpledge_RecurringMethod'] == 'Installment') {
652 $Total = $this->number_format($UnitPriceCalculate, 2, '.', '') * 100 - $TotalDiscountCalculate;
653 $total_amount = $dom->createElement('Total', $Total);
654 $total_amount = $trans_totals->appendChild($total_amount);
655 } else {
656 $Total = $this->number_format($UnitPriceCalculate, 2, '.', '') * 100 - $TotalDiscountCalculate;
657 ;
658 $total_amount = $dom->createElement('Total', $Total);
659 $total_amount = $trans_totals->appendChild($total_amount);
660 }
661 } else {
662 $Total = $this->number_format($UnitPriceCalculate, 2, '.', '') * 100 - $TotalDiscountCalculate;
663 ;
664 $total_amount = $dom->createElement('Total', $Total);
665 $total_amount = $trans_totals->appendChild($total_amount);
666 }
667
668 if ($TotalDiscountCalculate > 0) {
669 if (isset($post['clickandpledge_coupon_code']) && $post['clickandpledge_coupon_code'] != '') {
670 $trans_coupon = $dom->createElement('CouponCode', $post['clickandpledge_coupon_code']);
671 $trans_coupon = $transation->appendChild($trans_coupon);
672 }
673 }
674
675 $strParam = $dom->saveXML();
676 //die();
677 return $strParam;
678 }
679
680 public function getEngine()
681 {
682 return "clickandpledge_payment";
683 }
684 public function getTitle()
685 {
686 return "Click & Pledge";
687 }
688
689 public function getForm()
690 {
691 return "Config_ClickandPledge";
692 }
693
694
695
696 public function processTransaction()
697 {
698 return array(
699 "external_id" => $this->_post['token'],
700 "paid" => $this->_post['clickandpledge_Amount'] - $this->_post['clickandpledge_Discount']
701 );
702 }
703 public function bind(array $post, array $get)
704 {
705 // this is a good place to set $this->data
706 $this->setObject(new Wpjb_Model_Payment($post["id"]));
707 parent::bind($post, $get);
708 }
709 private function getMerchant()
710 {
711 $merchant = array();
712 //USD Account
713 $merchant['wpjobboard_clickandpledge_usdaccount'] = $this->conf('wpjobboard_clickandpledge_usdaccount');
714 $merchant['wpjobboard_clickandpledge_USD_AccountID'] = $this->conf('wpjobboard_clickandpledge_USD_AccountID');
715 $merchant['wpjobboard_clickandpledge_USD_AccountGuid'] = $this->conf('wpjobboard_clickandpledge_USD_AccountGuid');
716 $merchant['wpjobboard_clickandpledge_USD_OrderMode'] = $this->conf('wpjobboard_clickandpledge_USD_OrderMode');
717
718 //EUR Account
719 $merchant['wpjobboard_clickandpledge_euraccount'] = $this->conf('wpjobboard_clickandpledge_euraccount');
720 $merchant['wpjobboard_clickandpledge_EUR_AccountID'] = $this->conf('wpjobboard_clickandpledge_EUR_AccountID');
721 $merchant['wpjobboard_clickandpledge_EUR_AccountGuid'] = $this->conf('wpjobboard_clickandpledge_EUR_AccountGuid');
722 $merchant['wpjobboard_clickandpledge_EUR_OrderMode'] = $this->conf('wpjobboard_clickandpledge_EUR_OrderMode');
723
724 //CAD Account
725 $merchant['wpjobboard_clickandpledge_cadaccount'] = $this->conf('wpjobboard_clickandpledge_cadaccount');
726 $merchant['wpjobboard_clickandpledge_CAD_AccountID'] = $this->conf('wpjobboard_clickandpledge_CAD_AccountID');
727 $merchant['wpjobboard_clickandpledge_CAD_AccountGuid'] = $this->conf('wpjobboard_clickandpledge_CAD_AccountGuid');
728 $merchant['wpjobboard_clickandpledge_CAD_OrderMode'] = $this->conf('wpjobboard_clickandpledge_CAD_OrderMode');
729
730 //GBP Account
731 $merchant['wpjobboard_clickandpledge_gbpaccount'] = $this->conf('wpjobboard_clickandpledge_gbpaccount');
732 $merchant['wpjobboard_clickandpledge_GBP_AccountID'] = $this->conf('wpjobboard_clickandpledge_GBP_AccountID');
733 $merchant['wpjobboard_clickandpledge_GBP_AccountGuid'] = $this->conf('wpjobboard_clickandpledge_GBP_AccountGuid');
734 $merchant['wpjobboard_clickandpledge_GBP_OrderMode'] = $this->conf('wpjobboard_clickandpledge_GBP_OrderMode');
735
736 //HKD Account
737 $merchant['wpjobboard_clickandpledge_hkdaccount'] = $this->conf('wpjobboard_clickandpledge_hkdaccount');
738 $merchant['wpjobboard_clickandpledge_HKD_AccountID'] = $this->conf('wpjobboard_clickandpledge_HKD_AccountID');
739 $merchant['wpjobboard_clickandpledge_HKD_AccountGuid'] = $this->conf('wpjobboard_clickandpledge_HKD_AccountGuid');
740 $merchant['wpjobboard_clickandpledge_HKD_OrderMode'] = $this->conf('wpjobboard_clickandpledge_HKD_OrderMode');
741
742 //Payment Methods
743 $merchant['wpjobboard_clickandpledge_Paymentmethods'] = $this->conf('wpjobboard_clickandpledge_Paymentmethods');
744 //Default Payment Method
745 $merchant['wpjobboard_clickandpledge_DefaultpaymentMethod'] = $this->conf('wpjobboard_clickandpledge_DefaultpaymentMethod');
746
747 //Receipt Settings
748 $merchant['wpjobboard_clickandpledge_emailcustomer'] = $this->conf('wpjobboard_clickandpledge_emailcustomer');
749 $merchant['wpjobboard_clickandpledge_OrganizationInformation'] = $this->conf('wpjobboard_clickandpledge_OrganizationInformation');
750 $merchant['wpjobboard_clickandpledge_TermsCondition'] = $this->conf('wpjobboard_clickandpledge_TermsCondition');
751
752 //Recurring Settings
753 $merchant['wpjobboard_clickandpledge_isRecurring'] = $this->conf('wpjobboard_clickandpledge_isRecurring');
754 $merchant['wpjobboard_clickandpledge_RecurringLabel'] = $this->conf('wpjobboard_clickandpledge_RecurringLabel');
755 $merchant['wpjobboard_clickandpledge_Periodicity'] = $this->conf('wpjobboard_clickandpledge_Periodicity');
756 $merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription'] = $this->conf('wpjobboard_clickandpledge_RecurringMethod_Subscription');
757 $merchant['wpjobboard_clickandpledge_maxrecurrings_Subscription'] = $this->conf('wpjobboard_clickandpledge_maxrecurrings_Subscription');
758 $merchant['wpjobboard_clickandpledge_RecurringMethod_Installment'] = $this->conf('wpjobboard_clickandpledge_RecurringMethod_Installment');
759 $merchant['wpjobboard_clickandpledge_maxrecurrings_Installment'] = $this->conf('wpjobboard_clickandpledge_maxrecurrings_Installment');
760 $merchant['wpjobboard_clickandpledge_indefinite'] = $this->conf('wpjobboard_clickandpledge_indefinite');
761 return $merchant;
762 }
763 public function render()
764 {
765 $data = $this->_data;
766 $id = $this->_data->id;
767 $availableCurrencies = array();
768 $paymentMethods = array();
769 $merchant = $this->getMerchant();
770
771
772 //echo '<pre>';
773 //print_r($_POST);
774 if (isset($merchant['wpjobboard_clickandpledge_usdaccount']) && $merchant['wpjobboard_clickandpledge_usdaccount'] != '')
775 array_push($availableCurrencies, 'USD');
776 if (isset($merchant['wpjobboard_clickandpledge_euraccount']) && $merchant['wpjobboard_clickandpledge_euraccount'] != '')
777 array_push($availableCurrencies, 'EUR');
778 if (isset($merchant['wpjobboard_clickandpledge_cadaccount']) && $merchant['wpjobboard_clickandpledge_cadaccount'] != '')
779 array_push($availableCurrencies, 'CAD');
780 if (isset($merchant['wpjobboard_clickandpledge_gbpaccount']) && $merchant['wpjobboard_clickandpledge_gbpaccount'] != '')
781 array_push($availableCurrencies, 'GBP');
782 if (isset($merchant['wpjobboard_clickandpledge_hkdaccount']) && $merchant['wpjobboard_clickandpledge_hkdaccount'] != '')
783 array_push($availableCurrencies, 'HKD');
784
785
786 $selectedCurrency = $this->_data->payment_currency;
787 if (in_array($selectedCurrency, $availableCurrencies)) {
788 if (isset($merchant['wpjobboard_clickandpledge_Paymentmethods']) && count($merchant['wpjobboard_clickandpledge_Paymentmethods']) > 0) {
789 foreach ($merchant['wpjobboard_clickandpledge_Paymentmethods'] as $method) {
790 if ($method == 'CreditCard')
791 $paymentMethods[$method] = 'Credit Card';
792 if ($method == 'eCheck')
793 $paymentMethods[$method] = 'eCheck';
794 if ($method == 'PurchaseOrder')
795 $paymentMethods[$method] = 'Purchase Order';
796 if ($method == 'Invoice')
797 $paymentMethods[$method] = 'Invoice';
798 }
799 } else {
800 $paymentMethods['CreditCard'] = 'Credit Card';
801 $paymentMethods['eCheck'] = 'eCheck';
802 $paymentMethods['PurchaseOrder'] = 'Purchase Order';
803 $paymentMethods['Invoice'] = 'Invoice';
804 }
805
806 $defaultpayment = 'CreditCard';
807 if ($merchant['wpjobboard_clickandpledge_DefaultpaymentMethod'] != '')
808 $defaultpayment = $merchant['wpjobboard_clickandpledge_DefaultpaymentMethod'];
809
810
811
812 $ajaxurl = admin_url("admin-ajax.php");
813
814 wp_register_script('clickandpledge-plugin-script', plugins_url('/clickandpledge.js', __FILE__));
815 wp_enqueue_script('clickandpledge-plugin-script');
816
817 wp_register_script('jquery.validate.min-script', plugins_url('/jquery.validate.min.js', __FILE__));
818 wp_enqueue_script('jquery.validate.min-script');
819
820 wp_register_script('clickandpledge_validations-script', plugins_url('/clickandpledge_validations.js', __FILE__));
821 wp_enqueue_script('clickandpledge_validations-script');
822 // global $html;
823 $html = '
824 <style type="text/css">
825 .form-row > label > span {
826 display: block;
827 width: 200px;
828 float: left;
829 line-height: 2em;
830 }
831 .form-row label.error {
832 color: red;
833 font-style: italic;
834 }
835 </style>
836<script type="text/javascript">
837 var WPJB_PAYMENT_ID = ' . $id . ';
838 if (typeof ajaxurl === "undefined") {
839 ajaxurl = "' . $ajaxurl . '";
840 }
841</script>
842 <form action="" method="POST" id="payment-form">
843 <h3>' . __("Click & Pledge", "wpjobboard") . '</h3>
844 <div class="payment-errors"></div>
845 <div class="htmlholder">
846 ';
847
848 if (count($paymentMethods) > 0) {
849 $html .= '<span style="width:980px" id="payment_methods">';
850 foreach ($paymentMethods as $pkey => $pval) {
851 //print_r($pval);die('fff');
852 if ($pkey == $defaultpayment) {
853 $html .= '<input type="radio" id="cnp_payment_method_selection_' . $pkey . '" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="' . $pkey . '" checked>&nbsp<b>' . $pval . '</b>&nbsp;&nbsp;&nbsp;';
854 } else {
855 $html .= '<input type="radio" id="cnp_payment_method_selection_' . $pkey . '" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="' . $pkey . '">&nbsp;<b>' . $pval . '</b>&nbsp;&nbsp;&nbsp;';
856 }
857 }
858 $html .= '</span>';
859 }
860
861 $html .= '<script>
862 jQuery("#cnp_payment_method_selection_CreditCard").click(function(){
863 jQuery("#cnp_CreditCard_div").show();
864 jQuery("#cnp_eCheck_div").hide();
865 jQuery("#cnp_Invoice_div").hide();
866 jQuery("#cnp_PurchaseOrder_div").hide();
867
868 });
869 jQuery("#cnp_payment_method_selection_eCheck").click(function(){
870 jQuery("#cnp_CreditCard_div").hide();
871 jQuery("#cnp_eCheck_div").show();
872 jQuery("#cnp_Invoice_div").hide();
873 jQuery("#cnp_PurchaseOrder_div").hide();
874
875 });
876 jQuery("#cnp_payment_method_selection_Invoice").click(function(){
877 jQuery("#cnp_CreditCard_div").hide();
878 jQuery("#cnp_eCheck_div").hide();
879 jQuery("#cnp_Invoice_div").show();
880 jQuery("#cnp_PurchaseOrder_div").hide();
881
882 });
883 jQuery("#cnp_payment_method_selection_PurchaseOrder").click(function(){
884 jQuery("#cnp_CreditCard_div").hide();
885 jQuery("#cnp_eCheck_div").hide();
886 jQuery("#cnp_Invoice_div").hide();
887 jQuery("#cnp_PurchaseOrder_div").show();
888
889 });
890 </script>';
891 $cdivdisplay = ($defaultpayment == 'CreditCard') ? 'block' : 'none';
892 $recurringhtml = '';
893 // echo $merchant['wpjobboard_clickandpledge_isRecurring'].'############';
894 // die();
895 if (isset($merchant['wpjobboard_clickandpledge_isRecurring']) && $merchant['wpjobboard_clickandpledge_isRecurring'] == 1) {
896 if ($merchant['wpjobboard_clickandpledge_RecurringLabel'] != '') {
897 $recurringhtml .= '<br><div class="form-row" id="clickandpledge_isRecurring_div">
898 <label>
899 <span>' . __($merchant['wpjobboard_clickandpledge_RecurringLabel'], "wpjobboard") . '</span>
900 <input type="checkbox" name="clickandpledge_isRecurring" id="clickandpledge_isRecurring"/>
901 </label>
902 </div>';
903 } else {
904 $recurringhtml .= '<br><div class="form-row" id="clickandpledge_isRecurring_div">
905 <label>
906 <span>' . __('Is this Recurring Payment?', "wpjobboard") . '</span>
907 <input type="checkbox" name="clickandpledge_isRecurring" id="clickandpledge_isRecurring"/>
908 </label>
909 </div>';
910 }
911 $RecurringMethod = array();
912 if (isset($merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription']) && is_array($merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription']) && count($merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription']) > 0) {
913 array_push($RecurringMethod, 'Subscription');
914 }
915 if (isset($merchant['wpjobboard_clickandpledge_RecurringMethod_Installment']) && is_array($merchant['wpjobboard_clickandpledge_RecurringMethod_Installment']) && count($merchant['wpjobboard_clickandpledge_RecurringMethod_Installment']) > 0) {
916 array_push($RecurringMethod, 'Installment');
917 }
918 if (count($RecurringMethod) == 0) {
919 array_push($RecurringMethod, 'Subscription');
920 array_push($RecurringMethod, 'Installment');
921 }
922 if (count($RecurringMethod) > 0) {
923 if (count($RecurringMethod) == 1) {
924 $recurringhtml .= '<input type="hidden" name="clickandpledge_RecurringMethod" id="clickandpledge_RecurringMethod" value="' . $RecurringMethod[0] . '">';
925 } else {
926 $recurringhtml .= '<br><div class="form-row" id="clickandpledge_RecurringMethod_div">
927 <label>
928 <span>' . __("Recurring Method", "wpjobboard") . '</span>
929 <select id="clickandpledge_RecurringMethod" name="clickandpledge_RecurringMethod">';
930 foreach ($RecurringMethod as $r) {
931 $recurringhtml .= '<option value="' . $r . '">' . $r . '</option>';
932 }
933 $recurringhtml .= '</select>
934 </label>
935 </div>';
936 }
937 } else {
938 $recurringhtml .= '<div class="form-row" id="clickandpledge_RecurringMethod_div">
939 <label>
940 <span>' . __("Recurring Method", "wpjobboard") . '</span>
941 <select id="clickandpledge_RecurringMethod" name="clickandpledge_RecurringMethod">
942 <option value="Subscription">Subscription</option>
943 <option value="Installment">Installment</option>
944 </select>
945 </label>
946 </div>';
947 }
948
949 if (isset($merchant['wpjobboard_clickandpledge_indefinite']) && is_array($merchant['wpjobboard_clickandpledge_indefinite']) && count($merchant['wpjobboard_clickandpledge_indefinite']) > 0) {
950 $recurringhtml .= '<br><div class="form-row" id="clickandpledge_indefinite_div">
951 <label>
952 <span>' . __("Indefinite Recurring", "wpjobboard") . '</span>
953 <input type="checkbox" name="clickandpledge_indefinite" id="clickandpledge_indefinite"/>
954 </label>
955 </div>';
956 }
957
958 if (isset($merchant['wpjobboard_clickandpledge_Periodicity']) && is_array($merchant['wpjobboard_clickandpledge_Periodicity']) && count($merchant['wpjobboard_clickandpledge_Periodicity']) > 0) {
959 $recurringhtml .= '<br><div class="form-row" id="clickandpledge_Periodicity_div">
960 <label>
961 <span>' . __("Every", "wpjobboard") . '</span>
962 <select id="clickandpledge_Periodicity" name="clickandpledge_Periodicity">';
963 foreach ($merchant['wpjobboard_clickandpledge_Periodicity'] as $r) {
964 $recurringhtml .= '<option value="' . $r . '">' . $r . '</option>';
965 }
966 $recurringhtml .= '</select>
967 </label>&nbsp;
968 <span id="clickandpledge_Installment_div"><input type="text" name="clickandpledge_Installment" id="clickandpledge_Installment" class="required" title="Installments" style="width:100px;" maxlength="3"/>&nbsp;<font color="#FF0000">*</font> payments</span>
969 </div>
970 <script>
971 jQuery("#clickandpledge_Installment").keypress(function(e) {
972 var a = [];
973 var k = e.which;
974
975 for (i = 48; i < 58; i++)
976 a.push(i);
977
978 if (!(a.indexOf(k)>=0))
979 e.preventDefault();
980 });
981 </script>';
982 } else {
983 $Periodicity = array();
984 $Periodicity['Week'] = 'Week';
985 $Periodicity['2 Weeks'] = '2 Weeks';
986 $Periodicity['Month'] = 'Month';
987 $Periodicity['2 Months'] = '2 Months';
988 $Periodicity['Quarter'] = 'Quarter';
989 $Periodicity['6 Months'] = '6 Months';
990 $Periodicity['Year'] = 'Year';
991 $recurringhtml .= '<br><div class="form-row" id="clickandpledge_Periodicity_div">
992 <label>
993 <span>' . __("Every", "wpjobboard") . '</span>
994 <select id="clickandpledge_Periodicity" name="clickandpledge_Periodicity">';
995 foreach ($Periodicity as $k => $v) {
996 $recurringhtml .= '<option value="' . $k . '">' . $v . '</option>';
997 }
998 $recurringhtml .= '</select>
999 </label>&nbsp;
1000 <span id="clickandpledge_Installment_div"><input type="text" name="clickandpledge_Installment" id="clickandpledge_Installment" class="required" title="Installments" style="width:100px;" maxlength="3"/>&nbsp;<font color="#FF0000">*</font> payments</span>
1001 </div>
1002 <script>
1003 jQuery("#clickandpledge_Installment").keypress(function(e) {
1004 var a = [];
1005 var k = e.which;
1006
1007 for (i = 48; i < 58; i++)
1008 a.push(i);
1009
1010 if (!(a.indexOf(k)>=0))
1011 e.preventDefault();
1012 });
1013 </script>';
1014 }
1015
1016 }
1017 //echo $recurringhtml;
1018 //die('333333333333');
1019 $clickandpledgename_CreditCard = '<div class="form-row cnp_payment_style" >
1020 <label>
1021 <span>' . __("Name&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1022 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_FirstName_CreditCard" id="clickandpledge_FirstName_CreditCard" class="required NameOnCard" placeholder="First Name"/>
1023 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_LastName_CreditCard" id="clickandpledge_LastName_CreditCard" class="required NameOnCard" placeholder="Last Name"/>
1024 </label>
1025 </div>
1026 <style>
1027 .cnp_payment_style label span{
1028 width: 100%;
1029 }
1030 #clickandpledge_FirstName_CreditCard, #clickandpledge_LastName_CreditCard {
1031 width: 48%;
1032 display: inline-block;
1033 }
1034 </style>
1035 ';
1036 $clickandpledgename_eCheck = '<div class="form-row cnp_payment_style" >
1037 <label>
1038 <span>' . __("Name&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1039 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_FirstName_eCheck" id="clickandpledge_FirstName_eCheck" class="required NameOnCard" placeholder="First Name"/>
1040 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_LastName_eCheck" id="clickandpledge_LastName_eCheck" class="required NameOnCard" placeholder="Last Name"/>
1041 </label>
1042 </div>
1043 <style>
1044 .cnp_payment_style label span{
1045 width: 100%;
1046 }
1047 #clickandpledge_FirstName_eCheck, #clickandpledge_LastName_eCheck {
1048 width: 48%;
1049 display: inline-block;
1050 }
1051 </style>
1052 ';
1053 $clickandpledgename_Invoice = '<div class="form-row cnp_payment_style" >
1054 <label>
1055 <span>' . __("Name&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1056 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_FirstName_Invoice" id="clickandpledge_FirstName_Invoice" class="required NameOnCard" placeholder="First Name"/>
1057 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_LastName_Invoice" id="clickandpledge_LastName_Invoice" class="required NameOnCard" placeholder="Last Name"/>
1058 </label>
1059 </div>
1060 <style>
1061 .cnp_payment_style label span{
1062 width: 100%;
1063 }
1064 #clickandpledge_FirstName_Invoice, #clickandpledge_LastName_Invoice {
1065 width: 48%;
1066 display: inline-block;
1067 }
1068 </style> ';
1069 $clickandpledgename_PO = '<div class="form-row cnp_payment_style" >
1070 <label>
1071 <span>' . __("Name&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1072 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_FirstName_PO" id="clickandpledge_FirstName_PO" class="required NameOnCard" placeholder="First Name"/>
1073 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_LastName_PO" id="clickandpledge_LastName_PO" class="required NameOnCard" placeholder="Last Name"/>
1074 </label>
1075 </div>
1076 <style>
1077 .cnp_payment_style label span{
1078 width: 100%;
1079 }
1080 #clickandpledge_FirstName_PO, #clickandpledge_LastName_PO {
1081 width: 48%;
1082 display: inline-block;
1083 }
1084 </style> ';
1085
1086 $html .= '<div style="display:' . $cdivdisplay . '" id="cnp_CreditCard_div">';
1087 $html .= $clickandpledgename_CreditCard;
1088 $html .= '<div class="form-row">
1089 <label>
1090 <span>' . __("Name On Card&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1091 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_nameOnCard" id="clickandpledge_nameOnCard" class="required NameOnCard" placeholder="Name On Card"/>
1092 </label>
1093 </div>
1094
1095 <div class="form-row">
1096 <label>
1097 <span>' . __("Card Number&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1098 <input type="text" size="20" data-clickandpledge="number" name="clickandpledge_cardNumber" id="clickandpledge_cardNumber" class="required creditcard" placeholder="Card Number"/>
1099 </label>
1100 </div>
1101
1102 <div class="form-row">
1103 <label>
1104 <span>' . __("CVV&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1105 <input type="text" size="4" data-clickandpledge="cvc" maxlength="4" name="clickandpledge_cvc" id="clickandpledge_cvc" class="required Cvv2" placeholder="CVV"/>
1106 </label>
1107 </div>
1108 <div class="form-row">
1109 <label><span>' . __("Expiration (MM/YYYY)&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span></label>
1110 <select name="clickandpledge_cardExpMonth" id="clickandpledge_cardExpMonth" class="required">' . $this->getMonths() . '</select>
1111 <span> / </span>
1112 <select name="clickandpledge_cardExpYear" id="clickandpledge_cardExpYear" class="required" data-clickandpledge="exp-year">' . $this->getYears() . '</select>
1113 </div>';
1114 $html .= $recurringhtml;
1115 $html .= '</div>'; //CreditCard Div End
1116
1117 $eCheckdivdisplay = ($defaultpayment == 'eCheck') ? 'block' : 'none';
1118 $recurringhtml_eCheck = '';
1119
1120 if (isset($merchant['wpjobboard_clickandpledge_isRecurring']) && $merchant['wpjobboard_clickandpledge_isRecurring'] == 1) {
1121 if ($merchant['wpjobboard_clickandpledge_RecurringLabel'] != '') {
1122 $recurringhtml_eCheck .= '<br><div class="form-row" id="clickandpledge_isRecurring_div_eCheck">
1123 <label>
1124 <span>' . __($merchant['wpjobboard_clickandpledge_RecurringLabel'], "wpjobboard") . '</span>
1125 <input type="checkbox" name="clickandpledge_isRecurring_eCheck" id="clickandpledge_isRecurring_eCheck"/>
1126 </label>
1127 </div>';
1128 } else {
1129 $recurringhtml_eCheck .= '<br><div class="form-row" id="clickandpledge_isRecurring_div_eCheck">
1130 <label>
1131 <span>' . __('Is this Recurring Payment?', "wpjobboard") . '</span>
1132 <input type="checkbox" name="clickandpledge_isRecurring_eCheck" id="clickandpledge_isRecurring_eCheck"/>
1133 </label>
1134 </div>';
1135 }
1136 $RecurringMethod = array();
1137 if (isset($merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription']) && is_array($merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription']) && count($merchant['wpjobboard_clickandpledge_RecurringMethod_Subscription']) > 0) {
1138 array_push($RecurringMethod, 'Subscription');
1139 }
1140 if (isset($merchant['wpjobboard_clickandpledge_RecurringMethod_Installment']) && is_array($merchant['wpjobboard_clickandpledge_RecurringMethod_Installment']) && count($merchant['wpjobboard_clickandpledge_RecurringMethod_Installment']) > 0) {
1141 array_push($RecurringMethod, 'Installment');
1142 }
1143 if (count($RecurringMethod) == 0) {
1144 array_push($RecurringMethod, 'Subscription');
1145 array_push($RecurringMethod, 'Installment');
1146 }
1147 if (count($RecurringMethod) > 0) {
1148 if (count($RecurringMethod) == 1) {
1149 $recurringhtml_eCheck .= '<input type="hidden" name="clickandpledge_RecurringMethod_eCheck" id="clickandpledge_RecurringMethod_eCheck" value="' . $RecurringMethod[0] . '">';
1150 } else {
1151 $recurringhtml_eCheck .= '<br><div class="form-row" id="clickandpledge_RecurringMethod_div_eCheck">
1152 <label>
1153 <span>' . __("Recurring Method", "wpjobboard") . '</span>
1154 <select id="clickandpledge_RecurringMethod_eCheck" name="clickandpledge_RecurringMethod_eCheck">';
1155 foreach ($RecurringMethod as $r) {
1156 $recurringhtml_eCheck .= '<option value="' . $r . '">' . $r . '</option>';
1157 }
1158 $recurringhtml_eCheck .= '</select>
1159 </label>
1160 </div>';
1161 }
1162 } else {
1163 $recurringhtml_eCheck .= '<div class="form-row" id="clickandpledge_RecurringMethod_div_eCheck">
1164 <label>
1165 <span>' . __("Recurring Method", "wpjobboard") . '</span>
1166 <select id="clickandpledge_RecurringMethod_eCheck" name="clickandpledge_RecurringMethod_eCheck">
1167 <option value="Subscription">Subscription</option>
1168 <option value="Installment">Installment</option>
1169 </select>
1170 </label>
1171 </div>';
1172 }
1173
1174 if (isset($merchant['wpjobboard_clickandpledge_indefinite']) && is_array($merchant['wpjobboard_clickandpledge_indefinite']) && count($merchant['wpjobboard_clickandpledge_indefinite']) > 0) {
1175 $recurringhtml_eCheck .= '<br><div class="form-row" id="clickandpledge_indefinite_div_eCheck">
1176 <label>
1177 <span>' . __("Indefinite Recurring", "wpjobboard") . '</span>
1178 <input type="checkbox" name="clickandpledge_indefinite_eCheck" id="clickandpledge_indefinite_eCheck"/>
1179 </label>
1180 </div>';
1181 }
1182
1183 if (isset($merchant['wpjobboard_clickandpledge_Periodicity']) && is_array($merchant['wpjobboard_clickandpledge_Periodicity']) && count($merchant['wpjobboard_clickandpledge_Periodicity']) > 0) {
1184 $recurringhtml_eCheck .= '<br><div class="form-row" id="clickandpledge_Periodicity_div_eCheck">
1185 <label>
1186 <span>' . __("Every", "wpjobboard") . '</span>
1187 <select id="clickandpledge_Periodicity_eCheck" name="clickandpledge_Periodicity_eCheck">';
1188 foreach ($merchant['wpjobboard_clickandpledge_Periodicity'] as $r) {
1189 $recurringhtml_eCheck .= '<option value="' . $r . '">' . $r . '</option>';
1190 }
1191 $recurringhtml_eCheck .= '</select>
1192 </label>&nbsp;
1193 <span id="clickandpledge_Installment_div_eCheck"><input type="text" name="clickandpledge_Installment_eCheck" id="clickandpledge_Installment_eCheck" class="required" title="Installments" style="width:100px;" maxlength="3"/>&nbsp;<font color="#FF0000">*</font> payments</span>
1194 </div>
1195 <script>
1196 jQuery("#clickandpledge_Installment_eCheck").keypress(function(e) {
1197 var a = [];
1198 var k = e.which;
1199
1200 for (i = 48; i < 58; i++)
1201 a.push(i);
1202
1203 if (!(a.indexOf(k)>=0))
1204 e.preventDefault();
1205 });
1206 </script>';
1207 } else {
1208 $Periodicity = array();
1209 $Periodicity['Week'] = 'Week';
1210 $Periodicity['2 Weeks'] = '2 Weeks';
1211 $Periodicity['Month'] = 'Month';
1212 $Periodicity['2 Months'] = '2 Months';
1213 $Periodicity['Quarter'] = 'Quarter';
1214 $Periodicity['6 Months'] = '6 Months';
1215 $Periodicity['Year'] = 'Year';
1216 $recurringhtml_eCheck .= '<br><div class="form-row" id="clickandpledge_Periodicity_div_eCheck">
1217 <label>
1218 <span>' . __("Every", "wpjobboard") . '</span>
1219 <select id="clickandpledge_Periodicity_eCheck" name="clickandpledge_Periodicity_eCheck">';
1220 foreach ($Periodicity as $k => $v) {
1221 $recurringhtml_eCheck .= '<option value="' . $k . '">' . $v . '</option>';
1222 }
1223 $recurringhtml_eCheck .= '</select>
1224 </label>&nbsp;
1225 <span id="clickandpledge_Installment_div_eCheck"><input type="text" name="clickandpledge_Installment_eCheck" id="clickandpledge_Installment_eCheck" class="required" title="Installments" style="width:100px;" maxlength="3"/>&nbsp;<font color="#FF0000">*</font> payments</span>
1226 </div>
1227 <script>
1228 jQuery("#clickandpledge_Installment_eCheck").keypress(function(e) {
1229 var a = [];
1230 var k = e.which;
1231
1232 for (i = 48; i < 58; i++)
1233 a.push(i);
1234
1235 if (!(a.indexOf(k)>=0))
1236 e.preventDefault();
1237 });
1238 </script>';
1239 }
1240
1241 }
1242 $html .= '<div style="display:' . $eCheckdivdisplay . '" id="cnp_eCheck_div">';
1243 $html .= $clickandpledgename_eCheck;
1244 $html .= '
1245 <div class="form-row">
1246 <label>
1247 <span>' . __("Routing Number&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1248 <input type="text" data-clickandpledge="number" name="clickandpledge_echeck_RoutingNumber" id="clickandpledge_echeck_RoutingNumber" class="required RoutingNumber" placeholder="Routing Number"/>
1249 </label>
1250 </div>
1251 <div class="form-row">
1252 <label>
1253 <span>' . __("Check Number&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1254 <input type="text" data-clickandpledge="number" name="clickandpledge_echeck_CheckNumber" id="clickandpledge_echeck_CheckNumber" class="required CheckNumber" placeholder="Check Number"/>
1255 </label>
1256 </div>
1257 <div class="form-row">
1258 <label>
1259 <span>' . __("Account Number&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1260 <input type="text" data-clickandpledge="number" name="clickandpledge_echeck_AccountNumber" id="clickandpledge_echeck_AccountNumber" class="required AccountNumber" placeholder="Account Number"/>
1261 </label>
1262 </div>
1263 <div class="form-row">
1264 <label>
1265 <span>' . __("Retype Account Number&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1266 <input type="text" data-clickandpledge="number" name="clickandpledge_echeck_retypeAccountNumber" id="clickandpledge_echeck_retypeAccountNumber" class="required AccountNumber" placeholder="Retype Account Number"/>
1267 </label>
1268 </div>
1269 <div class="form-row">
1270 <label>
1271 <span>' . __("Account Type&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1272 <select name="clickandpledge_echeck_AccountType" id="clickandpledge_echeck_AccountType" title="Account Type">
1273 <option value="SavingsAccount">SavingsAccount</option>
1274 <option value="CheckingAccount">CheckingAccount</option>
1275 </select>
1276 </label>
1277 </div>
1278 <div class="form-row">
1279 <label>
1280 <span>' . __("Check Type&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1281 <select name="clickandpledge_echeck_CheckType" id="clickandpledge_echeck_CheckType" title="Check Type">
1282 <option value="Company">Company</option>
1283 <option value="Personal">Personal</option>
1284 </select>
1285 </label>
1286 </div>
1287 <div class="form-row">
1288 <label>
1289 <span>' . __("Name on Account&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1290 <input type="text" data-clickandpledge="number" name="clickandpledge_echeck_NameOnAccount" id="clickandpledge_echeck_NameOnAccount" class="required AccountNumber" placeholder="Name on Account"/>
1291 </label>
1292 </div>
1293 <div class="form-row">
1294 <label>
1295 <span>' . __("Type of ID&nbsp;<font color='red'>*</font>", "wpjobboard") . '</span>
1296 <select name="clickandpledge_echeck_IdType" id="clickandpledge_echeck_IdType" title="Type of ID">
1297 <option value="Driver">Driver</option>
1298 <option value="Military">Military</option>
1299 <option value="State">State</option>
1300 </select>
1301 </label>
1302 </div>';
1303 $html .= $recurringhtml_eCheck;
1304 $html .= '</div>'; //eCheck Div End
1305
1306 $Invoicedivdisplay = ($defaultpayment == 'Invoice') ? 'block' : 'none';
1307 $html .= '<div style="display:' . $Invoicedivdisplay . '" id="cnp_Invoice_div">';
1308 $html .= $clickandpledgename_Invoice;
1309 $html .= '
1310 <div class="form-row">
1311 <label>
1312 <span>' . __("Invoice Number", "wpjobboard") . '</span>
1313 <input type="text" data-clickandpledge="number" name="clickandpledge_Invoice_InvoiceNumber" id="clickandpledge_Invoice_InvoiceNumber" class="InvoiceCheckNumber" placeholder="Invoice Number"/>
1314 </label>
1315 </div>';
1316 $html .= '</div>'; //Invoice Div End
1317
1318 $PurchaseOrderdivdisplay = ($defaultpayment == 'PurchaseOrder') ? 'block' : 'none';
1319 $html .= '<div style="display:' . $PurchaseOrderdivdisplay . '" id="cnp_PurchaseOrder_div">';
1320 $html .= $clickandpledgename_PO;
1321 $html .= '
1322 <div class="form-row">
1323 <label>
1324 <span>' . __("Purchase Order Number", "wpjobboard") . '</span>
1325 <input type="text" data-clickandpledge="number" name="clickandpledge_PurchaseOrder_OrderNumber" id="clickandpledge_PurchaseOrder_OrderNumber" class="PurchaseOrderNumber" placeholder="Purchase Order Number"/>
1326 </label>
1327 </div>';
1328 $html .= '</div>'; //PurchaseOrder Div End
1329 $listing_id = '';
1330 if (isset($_POST['listing']) && $_POST['listing'] != '')
1331 $listing_id = $_POST['listing'];
1332 elseif (isset($_POST['listing_type']) && $_POST['listing_type'] != '')
1333 $listing_id = $_POST['listing_type'];
1334 //print_r($this->_data->payment_sum+$this->_data->payment_discount);
1335 $varArray = array(
1336 'clickandpledge_AccountID' => $merchant['wpjobboard_clickandpledge_' . $selectedCurrency . '_AccountID'],
1337 'clickandpledge_AccountGuid' => $merchant['wpjobboard_clickandpledge_' . $selectedCurrency . '_AccountGuid'],
1338 'clickandpledge_OrderMode' => $merchant['wpjobboard_clickandpledge_' . $selectedCurrency . '_OrderMode'],
1339 'clickandpledge_Amount' => $this->_data->payment_sum + $this->_data->payment_discount,
1340 'clickandpledge_Discount' => $this->_data->payment_discount,
1341 'clickandpledge_OrganizationInformation' => htmlspecialchars($merchant['wpjobboard_clickandpledge_OrganizationInformation']),
1342 'clickandpledge_TermsCondition' => htmlspecialchars($merchant['wpjobboard_clickandpledge_TermsCondition']),
1343 'clickandpledge_email_customer' => (is_array($merchant['wpjobboard_clickandpledge_emailcustomer']) && count($merchant['wpjobboard_clickandpledge_emailcustomer']) > 0) ? $merchant['wpjobboard_clickandpledge_emailcustomer'][0] : '',
1344 'clickandpledge_maxrecurrings_Subscription' => $merchant['wpjobboard_clickandpledge_maxrecurrings_Subscription'],
1345 'clickandpledge_maxrecurrings_Installment' => $merchant['wpjobboard_clickandpledge_maxrecurrings_Installment'],
1346 'clickandpledge_listing_id' => $listing_id,
1347 'clickandpledge_coupon_code' => (isset($_POST['coupon'])) ? $_POST['coupon'] : ''
1348 );
1349 foreach ($varArray as $k => $v) {
1350 $html .= '<input type="hidden" name="' . $k . '" id="' . $k . '" value="' . $v . '" />';
1351 }
1352 $html .= '<button type="submit">' . __("Submit Payment", "wpjobboard") . '</button>
1353 </div>
1354 </form>';
1355 } else {
1356 if (count($availableCurrencies) > 0) {
1357 $html = 'Selected currency <b>' . $selectedCurrency . '</b> not supported by Click & Pledge. We are supporting <b>' . implode(',', $availableCurrencies) . '</b> only. Please contact administrator.';
1358 } else {
1359 $html = 'Selected currency <b>' . $selectedCurrency . '</b> not supported by Click & Pledge. Please contact administrator.';
1360 }
1361 }
1362 return $html;
1363 }
1364 public function getMonths()
1365 {
1366 $str = '';
1367 for ($i = 1; $i <= 12; $i++) {
1368 if (date('m') == sprintf('%02d', $i)) {
1369 $str .= '<option value="' . sprintf('%02d', $i) . '" selected>' . sprintf('%02d', $i) . ' (' . strftime('%B', mktime(0, 0, 0, $i, 1, 2000)) . ')</option>';
1370 } else {
1371 $str .= '<option value="' . sprintf('%02d', $i) . '">' . sprintf('%02d', $i) . ' (' . strftime('%B', mktime(0, 0, 0, $i, 1, 2000)) . ')</option>';
1372 }
1373 }
1374 return $str;
1375 }
1376 public function getYears()
1377 {
1378 $str = '';
1379 for ($i = date('Y'); $i < date('Y') + 11; $i++) {
1380 $str .= '<option value="' . strftime('%Y', mktime(0, 0, 0, 1, 1, $i)) . '">' . strftime('%Y', mktime(0, 0, 0, 1, 1, $i)) . '</option>';
1381 }
1382 return $str;
1383 }
1384 public function number_format($number, $decimals = 2, $decsep = '', $ths_sep = '')
1385 {
1386 $parts = explode('.', $number);
1387 if (count($parts) > 1) {
1388 return $parts[0] . '.' . substr($parts[1], 0, $decimals);
1389 } else {
1390 return $number;
1391 }
1392 }
1393}