'Payment Processors');
//var $events = array('approved' => 0, 'declined' => 0);
//var $events_status = array('approved' => 'success', 'declined' => 'fail', 'error' => 'fail', 'held' => 'fail');
var $defaults = array(
'product_id' => '',
'quantity' => '',
'merchant_order_id' => '',
'pay_method' => '',
'coupon' => '',
'card_holder_name' => '',
'street_address' => '',
'street_address2' => '',
'city' => '',
'state' => '',
'zip' => '',
'country' => '',
'email' => '',
'phone' => '',
'lang' => '',
'sid' => '',
'demo' => '',
'fixed' => '',
'skip_landing' => '',
'return_url' => '',
'routine' => 'M',
'x_Receipt_Link_URL' => '',
'debug_only' => 0,
'extra_params' => ''
);
public static function admin_initialize($name){
$patch = " - Trial";
$settings_model = new \GCore\Admin\Models\Extension();
$settings_data = $settings_model->find('first', array('conditions' => array('name' => 'chronoforms')));
if(!empty($settings_data['Extension']['settings'])){
$settings = $settings_data['Extension']['settings'];
if(!empty($settings['validated_2checkout'])){
$patch = " - Full";
}
}
self::$title = self::$title.$patch;
parent::admin_initialize($name);
}
function execute(&$form, $action_id){
$config = $form->actions_config[$action_id];
$config = new \GCore\Libs\Parameter($config);
$settings = new \GCore\Libs\Parameter($form->_settings());
$checkout_values = array(
'sid' => trim($config->get('sid')),
'product_id' => $form->data($config->get('product_id'), ''),
'quantity' => $form->data($config->get('quantity'), ''),
//variables
'merchant_order_id' => (isset($form->data[$config->get('merchant_order_id')]) ? $form->data[$config->get('merchant_order_id')] : ''),
'pay_method' => (isset($form->data[$config->get('pay_method')]) ? $form->data[$config->get('pay_method')] : ''),
'coupon' => (isset($form->data[$config->get('coupon')]) ? $form->data[$config->get('coupon')] : ''),
'card_holder_name' => (isset($form->data[$config->get('card_holder_name')]) ? $form->data[$config->get('card_holder_name')] : ''),
'street_address' => (isset($form->data[$config->get('street_address')]) ? $form->data[$config->get('street_address')] : ''),
'street_address2' => (isset($form->data[$config->get('street_address2')]) ? $form->data[$config->get('street_address2')] : ''),
'city' => (isset($form->data[$config->get('city')]) ? $form->data[$config->get('city')] : ''),
'state' => (isset($form->data[$config->get('state')]) ? $form->data[$config->get('state')] : ''),
'zip' => (isset($form->data[$config->get('zip')]) ? $form->data[$config->get('zip')] : ''),
'country' => (isset($form->data[$config->get('country')]) ? $form->data[$config->get('country')] : ''),
'email' => (isset($form->data[$config->get('email')]) ? $form->data[$config->get('email')] : ''),
'phone' => (isset($form->data[$config->get('phone')]) ? $form->data[$config->get('phone')] : ''),
'lang' => (isset($form->data[$config->get('lang')]) ? $form->data[$config->get('lang')] : ''),
//constants
'demo' => trim($config->get('demo')),
'fixed' => trim($config->get('fixed')),
'skip_landing' => trim($config->get('skip_landing')),
'return_url' => trim($config->get('return_url')),
'purchase_step' => trim($config->get('purchase_step')) ? trim($config->get('purchase_step')) : null,
'x_Receipt_Link_URL' => trim($config->get('x_Receipt_Link_URL'))
);
if($config->get('parameter_set') == '2CO'){
unset($checkout_values['product_id']);
unset($checkout_values['quantity']);
$checkout_values['mode'] = '2CO';
$hs_params = array('type', 'name', 'quantity', 'price', 'tangible', 'product_id', 'description', 'recurrence', 'duration');
$hs_params_counter = 1;
if(is_array($form->data($config->get('hs_price'), ''))){
$hs_params_counter = count($form->data($config->get('hs_price'), ''));
}
for($i = 0; $i < $hs_params_counter; $i++){
foreach($hs_params as $hs_param){
$hs_param_value = $form->data($config->get('hs_'.$hs_param), '');
$checkout_values['li_'.$i.'_'.$hs_param] = is_array($hs_param_value) ? $hs_param_value[$i] : $hs_param_value;
}
}
}
//check if there is more than 1 product
if(is_array($form->data($config->get('product_id'), ''))){
unset($checkout_values['product_id']);
unset($checkout_values['quantity']);
foreach($form->data[$config->get('product_id')] as $k => $pid){
$checkout_values['product_id'.($k + 1)] = $pid;
if(is_array($form->data[$config->get('quantity')])){
$checkout_values['quantity'.($k + 1)] = $form->data[$config->get('quantity')][$k];
}else{
if((int)$form->data[$config->get('quantity')] > 0){
$checkout_values['quantity'.($k + 1)] = (int)$form->data[$config->get('quantity')];
}else{
$checkout_values['quantity'.($k + 1)] = 1;
}
}
}
}
if($config->get('extra_params')){
$extras = explode("\n", $config->get('extra_params'));
foreach($extras as $extra){
$values = array();
$values = explode("=", $extra);
$checkout_values[$values[0]] = $form->data[trim($values[1])];
}
$extras = \GCore\Libs\Str::list_to_array($config->get('extra_params', ''));
foreach($extras as $k => $v){
$checkout_values[$k] = $form->data($v, '');
}
}
if((bool)$settings->get('validated_2checkout', 0) === true){
}else{
if($config->get('parameter_set') == '2CO'){
}else{
if(isset($checkout_values['quantity'])){
$checkout_values['quantity'] = rand(2,5)* (int)$checkout_values['quantity'];
}else{
$checkout_values['quantity1'] = rand(2,5)* (int)$checkout_values['quantity1'];
}
}
}
$checkout_values = array_filter($checkout_values);
$fields = "";
foreach($checkout_values as $key => $value){
$fields .= "$key=".urlencode($value)."&";
}
if($config->get('routine', 'M') == 'M'){
$url = 'https://www.2checkout.com/checkout/purchase?';
}else{
$url = 'https://www.2checkout.com/checkout/spurchase?';
}
if($config->get('debug_only', 0) == 1){
echo $url.$fields;
}else{
\GCore\Libs\Env::redirect($url.$fields);
}
}
public static function config(){
echo \GCore\Helpers\Html::formStart('action_config co_sender_action_config', 'co_sender_action_config_{N}');
?>
'text', 'label' => l_('CF_2CO_SID'), 'class' => 'L', 'sublabel' => l_('CF_2CO_SID_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][product_id]', array('type' => 'text', 'label' => l_('CF_2CO_PRODUCT_ID'), 'class' => 'M', 'sublabel' => l_('CF_2CO_PRODUCT_ID_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][quantity]', array('type' => 'text', 'label' => l_('CF_2CO_QUANTITY'), 'class' => 'L', 'sublabel' => l_('CF_2CO_QUANTITY_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][parameter_set]', array('type' => 'dropdown', 'label' => l_('CF_2CO_PARAMETER_SET'), 'options' => array('' => l_('CF_2CO_PARAMETER_SET_PNP'), '2CO' => l_('CF_2CO_PARAMETER_SET_HS')), 'sublabel' => l_('CF_2CO_PARAMETER_SET_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][skip_landing]', array('type' => 'dropdown', 'label' => l_('CF_2CO_SKIP_LANDING'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_2CO_SKIP_LANDING_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][routine]', array('type' => 'dropdown', 'label' => l_('CF_2CO_ROUTINE'), 'options' => array('M' => 'Multi Page (Default)', 'S' => 'Single Page'), 'sublabel' => l_('CF_2CO_ROUTINE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][extra_params]', array('type' => 'textarea', 'label' => l_('CF_2CO_EXTRA_PARAMS'), 'rows' => 5, 'cols' => 40, 'sublabel' => l_('CF_2CO_EXTRA_PARAMS_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][debug_only]', array('type' => 'dropdown', 'label' => l_('CF_2CO_DEBUG'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_2CO_DEBUG_DESC')));
echo \GCore\Helpers\Html::formSecEnd();
?>
'text', 'label' => l_('CF_2CO_HS_ITEM_TYPE'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_TYPE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_name]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_NAME'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_NAME_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_quantity]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_QUANTITY'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_QUANTITY_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_price]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_PRICE'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_PRICE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_tangible]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_TANGIBLE'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_TANGIBLE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_product_id]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_PID'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_PID_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_description]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_DESC'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_DESC_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_recurrence]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_RECURRENCE'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_RECURRENCE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][hs_duration]', array('type' => 'text', 'label' => l_('CF_2CO_HS_ITEM_DURATION'), 'class' => 'M', 'sublabel' => l_('CF_2CO_HS_ITEM_DURATION_DESC')));
echo \GCore\Helpers\Html::formSecEnd();
?>
'text', 'label' => l_('CF_2CO_CARD_HOLDER_NAME'), 'class' => 'M', 'sublabel' => l_('CF_2CO_CARD_HOLDER_NAME_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][street_address]', array('type' => 'text', 'label' => l_('CF_2CO_ADDRESS'), 'class' => 'M', 'sublabel' => l_('CF_2CO_ADDRESS_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][street_address2]', array('type' => 'text', 'label' => l_('CF_2CO_ADDRESS2'), 'class' => 'M', 'sublabel' => l_('CF_2CO_ADDRESS2_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][city]', array('type' => 'text', 'label' => l_('CF_2CO_CITY'), 'class' => 'M', 'sublabel' => l_('CF_2CO_CITY_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][state]', array('type' => 'text', 'label' => l_('CF_2CO_STATE'), 'class' => 'M', 'sublabel' => l_('CF_2CO_STATE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][zip]', array('type' => 'text', 'label' => l_('CF_2CO_ZIP'), 'class' => 'M', 'sublabel' => l_('CF_2CO_ZIP_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][country]', array('type' => 'text', 'label' => l_('CF_2CO_COUNTRY'), 'class' => 'M', 'sublabel' => l_('CF_2CO_COUNTRY_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][phone]', array('type' => 'text', 'label' => l_('CF_2CO_PHONE'), 'class' => 'M', 'sublabel' => l_('CF_2CO_PHONE_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][email]', array('type' => 'text', 'label' => l_('CF_2CO_EMAIL'), 'class' => 'M', 'sublabel' => l_('CF_2CO_EMAIL_DESC')));
echo \GCore\Helpers\Html::formSecEnd();
?>
'dropdown', 'label' => l_('CF_2CO_DEMO'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_2CO_DEMO_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][merchant_order_id]', array('type' => 'text', 'label' => l_('CF_2CO_MERCHANT_ORDER_ID'), 'class' => 'M', 'sublabel' => l_('CF_2CO_MERCHANT_ORDER_ID_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][lang]', array('type' => 'text', 'label' => l_('CF_2CO_LANG'), 'class' => 'M', 'sublabel' => l_('CF_2CO_LANG_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][x_Receipt_Link_URL]', array('type' => 'text', 'label' => l_('CF_2CO_RECEIPT_URL'), 'class' => 'L', 'sublabel' => l_('CF_2CO_RECEIPT_URL_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][fixed]', array('type' => 'text', 'label' => l_('CF_2CO_FIXED'), 'class' => 'L', 'sublabel' => l_('CF_2CO_FIXED_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][return_url]', array('type' => 'text', 'label' => l_('CF_2CO_RETURN_URL'), 'class' => 'L', 'sublabel' => l_('CF_2CO_RETURN_URL_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][pay_method]', array('type' => 'text', 'label' => l_('CF_2CO_PAY_METHOD'), 'class' => 'M', 'sublabel' => l_('CF_2CO_PAY_METHOD_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][coupon]', array('type' => 'text', 'label' => l_('CF_2CO_COUPON'), 'class' => 'M', 'sublabel' => l_('CF_2CO_COUPON_DESC')));
echo \GCore\Helpers\Html::formLine('Form[extras][actions_config][{N}][purchase_step]', array('type' => 'text', 'label' => l_('CF_2CO_PURCHASE_STEP'), 'class' => 'M', 'sublabel' => l_('CF_2CO_PURCHASE_STEP_DESC')));
echo \GCore\Helpers\Html::formSecEnd();
?>