function geodir_create_invoice($post_id = '', $pkg_id = '', $paymentmethod = '', $coupon_code = '', $post_action = 'add') { global $wpdb, $current_user; $user_id = $current_user->data->ID; $post_title = get_the_title($post_id); $package_info = geodir_get_package_info($pkg_id); /// Get package info $package_pid = $package_info->pid; $package_title = $package_info->title; $alive_days = $package_info->days; $sub_units = $package_info->sub_units; $sub_units_num = $package_info->sub_units_num; if ($package_info->sub_active) { $sub_units_num_var = $package_info->sub_units_num; $sub_units_var = $package_info->sub_units; $alive_days = geodir_payment_get_units_to_days($sub_units_num_var, $sub_units_var); $sub_num_trial_days_var = $package_info->sub_num_trial_days; $sub_num_trial_units = isset($package_info->sub_num_trial_units) ? $package_info->sub_num_trial_units : 'D'; $sub_num_trial_days_var = geodir_payment_get_units_to_days($sub_num_trial_days_var, $sub_num_trial_units); $sub_units_num_times_var = $package_info->sub_units_num_times; if ($package_info->sub_num_trial_days > 0) { $alive_days = $sub_num_trial_days_var; } } $amount = $package_info->amount ? $package_info->amount : 0; $expire_date = ''; if ($alive_days) { $expire_date = date('Y-m-d', strtotime(date('Y-m-d') . "+" . (int) $alive_days . " days")); } $geodir_post_type = get_post_type($post_id); $discount = ''; if ($coupon_code != '' && geodir_is_valid_coupon($geodir_post_type, $coupon_code)) { $discount = geodir_get_discount_amount($coupon_code, $amount); $paied_amount = geodir_get_payable_amount_with_coupon($amount, $coupon_code); } else { $paied_amount = $amount; } $status = 'pending'; if ($paied_amount > 0) { $type = 'paid'; } else { $type = 'free'; } $is_current = 1; $date = date('Y-m-d H:i:s', time()); $insert_invoice_query = "INSERT INTO " . INVOICE_TABLE . " SET "; $arr_invoice_params = array('type' => $type, 'post_id' => $post_id, 'post_title' => $post_title, 'post_action' => $post_action, 'package_id' => $package_pid, 'package_title' => $package_title, 'amount' => $amount, 'alive_days' => $alive_days, 'expire_date' => $expire_date, 'user_id' => $user_id, 'coupon_code' => $coupon_code, 'discount' => $discount, 'paied_amount' => $paied_amount, 'paymentmethod' => $paymentmethod, 'status' => $status, 'is_current' => $is_current, 'date' => $date); $arr_invoice_params = apply_filters('geodir_payment_invoice_params', $arr_invoice_params); foreach ($arr_invoice_params as $invocie_col => $invoice_value) { $insert_invoice_query .= " " . $invocie_col . " = '" . $invoice_value . "' , "; } $insert_invoice_query = trim($insert_invoice_query, ", "); $insert_invoice_query; $wpdb->query($insert_invoice_query); $lastpost_id = $wpdb->insert_id; do_action('geodir_payment_invoice_created', $wpdb->insert_id); return $lastpost_id; }
function geodir_publish_payment_listing_form_before_msg() { global $post, $wpdb; $post_type = $post->listing_type; if (isset($_REQUEST['package_id']) && $_REQUEST['package_id'] != '') { $package_price_info = geodir_get_post_package_info($_REQUEST['package_id']); } else { if (!empty($post) && isset($post->package_id)) { $package_price_info = geodir_get_post_package_info($post->package_id); } } $package_id = isset($package_price_info['pid']) ? $package_price_info['pid'] : ''; $payable_amount = isset($package_price_info['amount']) ? $package_price_info['amount'] : 0; $alive_days = isset($package_price_info['days']) ? $package_price_info['days'] : 0; $type_title = isset($package_price_info['title']) ? $package_price_info['title'] : ''; $sub_active = isset($package_price_info['sub_active']) ? $package_price_info['sub_active'] : ''; if ($sub_active) { $sub_units_num_var = $package_price_info['sub_units_num']; $sub_units_var = $package_price_info['sub_units']; $alive_days = geodir_payment_get_units_to_days($sub_units_num_var, $sub_units_var); // paypal free trial $sub_num_trial_days_var = $package_price_info['sub_num_trial_days']; $sub_num_trial_units_var = $package_price_info['sub_num_trial_units']; if ($sub_num_trial_days_var > 0) { $alive_days = geodir_payment_get_units_to_days($sub_num_trial_days_var, $sub_num_trial_units_var); } } $org_payable_amount = $payable_amount; /* -------- START LISTING FORM MESSAGE*/ ob_start(); if (isset($_REQUEST['coupon_code']) && $_REQUEST['coupon_code'] != '') { if (geodir_is_valid_coupon($post_type, $_REQUEST['coupon_code'])) { $payable_amount = geodir_get_payable_amount_with_coupon($payable_amount, $_REQUEST['coupon_code']); } else { echo '<p class="error_msg_fix">' . WRONG_COUPON_MSG . '</p>'; } } if ($payable_amount > 0) { if ($alive_days == 0) { $alive_days = UNLIMITED; } echo '<h5 class="geodir_information">'; printf(GOING_TO_PAY_MSG, geodir_get_currency_sym() . $payable_amount, $alive_days, $type_title); echo '</h5>'; } else { if ($alive_days == 0) { $alive_days = UNLIMITED; } echo '<h5 class="geodir_information">'; if (!isset($_REQUEST['pid']) || $_REQUEST['pid'] == '') { printf(GOING_TO_FREE_MSG, $type_title, $alive_days); } else { printf(GOING_TO_UPDATE_MSG, geodir_get_currency_sym() . $payable_amount, $alive_days, $type_title); } echo '</h5>'; } echo $form_message = ob_get_clean(); /* -------- END LISTING FORM MESSAGE*/ /* -------- START LISTING FORM PAYMENT OPTIONS*/ ob_start(); ?> <input type="hidden" name="price_select" value="<?php if (isset($package_id)) { echo $package_id; } ?> " /> <input type="hidden" name="coupon_code" value="<?php if (isset($_REQUEST['coupon_code'])) { echo $_REQUEST['coupon_code']; } ?> " /> <?php if ($payable_amount > 0) { if ($sub_active) { $sub_m_arr = apply_filters('geodir_subscription_methods', array('payment_method_paypal')); $method_names = implode(',', array_fill(0, count($sub_m_arr), '%s')); $paymentsql = $wpdb->prepare("select * from {$wpdb->options} where option_name in ({$method_names}) order by option_id", $sub_m_arr); } else { $paymentsql = $wpdb->prepare("select * from {$wpdb->options} where option_name like %s order by option_id", array('payment_method_%')); } $paymentinfo = $wpdb->get_results($paymentsql); if ($paymentinfo) { ?> <h5 class="geodir_payment_head"> <?php echo SELECT_PAY_MEHTOD_TEXT; ?> </h5> <ul class="geodir_payment_method"> <?php $paymentOptionArray = array(); $paymethodKeyarray = array(); foreach ($paymentinfo as $paymentinfoObj) { $paymentInfo = unserialize($paymentinfoObj->option_value); if ($paymentInfo['isactive']) { $paymethodKeyarray[] = $paymentInfo['key']; $paymentOptionArray[$paymentInfo['display_order']][] = $paymentInfo; } } ksort($paymentOptionArray); if ($paymentOptionArray) { $poa = 0; foreach ($paymentOptionArray as $key => $paymentInfoval) { $poa++; for ($i = 0; $i < count($paymentInfoval); $i++) { $paymentInfo = $paymentInfoval[$i]; $jsfunction = 'onclick="showoptions(this.value);"'; $chked = ''; if ($poa == 1) { $chked = 'checked="checked"'; } ?> <li id="<?php echo $paymentInfo['key']; ?> "> <input <?php echo $jsfunction; ?> type="radio" value="<?php echo $paymentInfo['key']; ?> " id="<?php echo $paymentInfo['key']; ?> _id" name="paymentmethod" <?php echo $chked; ?> /> <?php echo $paymentInfo['name']; ?> <?php if (file_exists(GEODIR_PAYMENT_MANAGER_PATH . $paymentInfo['key'] . '/' . $paymentInfo['key'] . '.php')) { include_once GEODIR_PAYMENT_MANAGER_PATH . $paymentInfo['key'] . '/' . $paymentInfo['key'] . '.php'; } ?> </li><?php } } if (isset($paymethodKeyarray)) { ?> <script type="application/x-javascript"> jQuery(document).ready(function($){ var submit_button = $('#publish_listing .geodir_publish_button'); submit_button.on('click', function(event){ var payment_method = $('#publish_listing input[name="paymentmethod"]:checked').val(); if( payment_method === 'authorizenet' ) { if($('#cardholder_name').val()==''){ alert('<?php _e('Please enter Cardholder name', GEODIRPAYMENT_TEXTDOMAIN); ?> ');return false; } if($('#cc_number').val()==''){ alert('<?php _e('Please enter card number', GEODIRPAYMENT_TEXTDOMAIN); ?> ');return false; } if($('#cc_month').val()=='' || $('#cc_year').val()=='' ){ alert('<?php _e('Please enter expire date', GEODIRPAYMENT_TEXTDOMAIN); ?> ');return false; } return true; }else { return true; } }); }); function showoptions(paymethod){ <?php for ($i = 0; $i < count($paymethodKeyarray); $i++) { ?> showoptvar = '<?php echo $paymethodKeyarray[$i]; ?> options'; if(eval(document.getElementById(showoptvar))) { document.getElementById(showoptvar).style.display = 'none'; if(paymethod=='<?php echo $paymethodKeyarray[$i]; ?> ') { document.getElementById(showoptvar).style.display = ''; } } <?php } ?> } <?php for ($i = 0; $i < count($paymethodKeyarray); $i++) { ?> if(document.getElementById('<?php echo $paymethodKeyarray[$i]; ?> _id').checked) { showoptions(document.getElementById('<?php echo $paymethodKeyarray[$i]; ?> _id').value);} <?php } ?> </script> <?php } } else { ?> <li><?php echo NO_PAYMENT_METHOD_MSG; ?> </li> <?php } ?> </ul> <?php } } echo $html = ob_get_clean(); /* -------- END LISTING FORM PAYMENT OPTIONS*/ /* -------- START LISTING FORM BUTTON*/ ob_start(); if ((!isset($_REQUEST['pid']) || $_REQUEST['pid'] == '') && $payable_amount == 0) { ?> <input type="submit" name="Submit and Pay" value="<?php echo PRO_SUBMIT_BUTTON; ?> " class="geodir_button geodir_publish_button" /><?php } elseif (isset($_REQUEST['pid']) && $_REQUEST['pid'] != '' && $payable_amount == 0) { ?> <input type="submit" name="Submit and Pay" value="<?php echo PRO_UPDATE_BUTTON; ?> " class="geodir_button geodir_publish_button" /><?php } elseif (isset($_REQUEST['package_id']) && $_REQUEST['package_id'] != '' && $payable_amount > 0 && (!isset($_REQUEST['pid']) || $_REQUEST['pid'] == '')) { ?> <input type="submit" name="Submit and Pay" value="<?php echo PRO_SUBMIT_PAY_BUTTON; ?> " class=" geodir_button geodir_publish_button" /><?php } elseif (isset($_REQUEST['package_id']) && $_REQUEST['package_id'] != '' && $org_payable_amount > 0 && (isset($_REQUEST['pid']) || $_REQUEST['pid'] != '')) { $post_status = get_post_status($_REQUEST['pid']); if ($post_status == 'draft') { ?> <input type="submit" name="Submit and Pay" value="<?php echo PRO_RENEW_BUTTON; ?> " class="geodir_button geodir_publish_button" /><?php } else { ?> <input type="submit" name="Submit and Pay" value="<?php echo PRO_UPGRADE_BUTTON; ?> " class="geodir_button geodir_publish_button" /><?php } } echo $listing_form_button = ob_get_clean(); /* -------- END LISTING FORM BUTTON*/ /* -------- START LISTING GO BACK LINK*/ $post_id = ''; if (isset($post->pid)) { $post_id = $post->pid; } elseif (isset($_REQUEST['pid'])) { $post_id = $_REQUEST['pid']; } if (isset($_REQUEST['add_listing_page_id'])) { $page_id = $_REQUEST['add_listing_page_id']; } else { $page_id = get_option('geodir_add_listing_page'); } //$postlink = get_permalink( $page_id ); $postlink = get_permalink(geodir_add_listing_page_id()); $postlink = geodir_getlink($postlink, array('pid' => $post_id, 'backandedit' => '1', 'listing_type' => $post_type), false); if (isset($_REQUEST['package_id']) && $_REQUEST['package_id'] != '') { $postlink = geodir_getlink($postlink, array('package_id' => $_REQUEST['package_id']), false); } ob_start(); ?> <a href="<?php echo $postlink; ?> " class="geodir_goback" ><?php echo PRO_BACK_AND_EDIT_TEXT; ?> </a> <input type="button" name="Cancel" value="<?php echo PRO_CANCEL_BUTTON; ?> " class="geodir_button cancle_button" onclick="window.location.href='<?php echo geodir_get_ajax_url() . '&geodir_ajax=add_listing&ajax_action=cancel&pid=' . $post_id . '&listing_type=' . $post_type; ?> '" /> <?php echo $listing_form_go_back = ob_get_clean(); }