<?php
* Implements hook_webform_submission_insert().
*/
function custom_paypal_webform_submission_insert($node, $submission) {
if ($node->nid == xx) {
$mapping = _custom_webform_component_mapping($node);
// print_r($submission);die();
/**
* Set up form to post to PayPal
*
* Preliminary notes:
* - PayPal expects a state code in 2-digit caps (no full names)
* - Need to break phone number into three strings... [area] [3-digits] [4-digits]
* - https://www.paypal.com/cgi-bin/webscr?cmd=_pdn_xclick_prepopulate_outside
*/
$paypal = array();
$paypal['cmd'] = '_donations'; // Varies depending on type of payment sent via PayPal
$paypal['business'] = 'name@example.com'; // PayPal account email
$paypal['bn'] = 'GM_Donate_WPS_US'; // See PayPal docs on proper formatting - not required, though
$paypal['page_style'] = 'primary'; // Set this in PayPal prefs, then change here (default = paypal)
$paypal['item_name'] = 'Payment';
$paypal['no_shipping'] = '1'; // Don't prompt user for shipping address
$paypal['no_note'] = '1'; // Don't prompt user for extra information (note)
$paypal['tax'] = '0'; // No tax for this payment
$paypal['rm'] = '1'; // Return method - 1 = browser redirected to return URL by GET method w/o variables
$paypal['return'] = 'http://xxxx/'; // Page to which user is returned
$paypal['name_of_applicant'] = $submission->data[$mapping['xx']]['value'][0];
$paypal['name_of_organisation'] = $submission->data[$mapping['xx']]['value'][0];
$paypal['email_address'] = $submission->data[$mapping['xx']]['value'][0];
// Condition for Commercial Bussiness
if(($submission->data['12']['value']['0'] == 'commercialbusiness') && ($submission->data['20']['value']['0'] == 'monthly')) {
$amount = $paypal['amount'] = 100;
$total_amount = $amount + (($amount / 100) * 10);
$paypal['amount'] = $total_amount;
}
// Add code for extra payment for upload photo gallery in Commercial Bussiness monthly
if(($submission->data['12']['value']['0'] == 'commercialbusiness') && ($submission->data['20']['value']['0'] == 'monthly') && ($submission->data['24']['value']['0'] == 'yes')) {
$amount = $paypal['amount'] = 100;
$total_amount = $amount + (($amount / 100) * 10);
$total_amnt_with_photo = $total_amount + 100;
$paypal['amount'] = $total_amnt_with_photo;
}
// End
if(($submission->data['12']['value']['0'] == 'commercialbusiness') && ($submission->data['20']['value']['0'] == 'annual')) {
$amount = $paypal['amount'] = 1000;
$total_amount = $amount + (($amount / 100) * 10);
$paypal['amount'] = $total_amount;
}
// Add code for extra payment for upload photo gallery in Commercial Bussiness Annual
if(($submission->data['12']['value']['0'] == 'commercialbusiness') && ($submission->data['20']['value']['0'] == 'annual') && ($submission->data['24']['value']['0'] == 'yes')) {
$amount = $paypal['amount'] = 1000;
$total_amount = $amount + (($amount / 100) * 10);
$total_amnt_with_photo = $total_amount + 100;
$paypal['amount'] = $total_amnt_with_photo;
}
// End
// Condition for Part time service provider
if(($submission->data['12']['value']['0'] == 'parttimeserviceprovider') && ($submission->data['20']['value']['0'] == 'monthly')) {
$amount = $paypal['amount'] = 50;
$total_amount = $amount + (($amount / 100) * 10);
$paypal['amount'] = $total_amount;
}
// Add code for extra payment for upload photo gallery in Part time service provider monthly
if(($submission->data['12']['value']['0'] == 'parttimeserviceprovider') && ($submission->data['20']['value']['0'] == 'monthly') && ($submission->data['24']['value']['0'] == 'yes')) {
$amount = $paypal['amount'] = 50;
$total_amount = $amount + (($amount / 100) * 10);
$total_amnt_with_photo = $total_amount + 100;
$paypal['amount'] = $total_amnt_with_photo;
}
// End
if(($submission->data['12']['value']['0'] == 'parttimeserviceprovider') && ($submission->data['20']['value']['0'] == 'annual')) {
$amount = $paypal['amount'] = 500;
$total_amount = $amount + (($amount / 100) * 10);
$paypal['amount'] = $total_amount;
}
// Add code for extra payment for upload photo gallery in Part time service provider Annual
if(($submission->data['12']['value']['0'] == 'parttimeserviceprovider') && ($submission->data['20']['value']['0'] == 'annual') && ($submission->data['24']['value']['0'] == 'yes')) {
$amount = $paypal['amount'] = 500;
$total_amount = $amount + (($amount / 100) * 10);
$total_amnt_with_photo = $total_amount + 100;
$paypal['amount'] = $total_amnt_with_photo;
}
// End
// Condition for Community Organization
if(($submission->data['12']['value']['0'] == 'communityorganisation') && ($submission->data['24']['value']['0'] == 'yes')) {
$amount = $paypal['amount'] = 100;
$total_amount = $amount + (($amount / 100) * 10);
$paypal['amount'] = $total_amount;
}
$paypal['type_of_listing'] = $submission->data[$mapping['type_of_listing']]['value'][0];
$paypal['payment'] = $submission->data[$mapping['payment']]['value'][0];
// Build the URL/query for PayPal payment form.
$query = http_build_query($paypal, '', '&');
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr?' . $query;
// $url = 'https://www.paypal.com/cgi-bin/webscr';
// Redirect user to PayPal...
drupal_goto($url);
}
}
/**
* Function to convert webform submissions into a nicely-mapped array.
*
* @see http://www.drupalcoder.com/story/678-additional-processing-in-drupals-we...
*/
function _custom_webform_component_mapping($node) {
//print_r($node);die();
$mapping = array();
$components = $node->webform['components'];
foreach ($components as $i => $component) {
$key = $component['form_key'];
$mapping[$key] = $i;
}
return $mapping;
}