Function Reference: geodir_payment_manager_ajax

Summary

This function has not been documented yet.

Source Code

function geodir_payment_manager_ajax()
{
	if(isset($_REQUEST['gd_add_price']) && $_REQUEST['gd_add_price'] == 'addprice')
	{
		geodir_add_edit_price();	
	}
	
	if(isset($_REQUEST['action_del']) && $_REQUEST['action_del'] == 'true')
	{
		geodir_del_price();
	}
	
	if(isset($_REQUEST['paymentsetting']) && $_REQUEST['paymentsetting'] == 'update_setting')
	{
		geodir_change_payment_method_setting();
	}
	
	if(isset($_REQUEST['gdaction']) && $_REQUEST['gdaction'] == 'change_status')
	{
		geodir_change_payment_method_status();
	}
	
	if(isset($_REQUEST['invoice_action']) && $_REQUEST['invoice_action'] == 'invoice')
	{
		geodir_change_invoice_status();
	}
	
	if(isset($_REQUEST['gd_add_coupon']) && $_REQUEST['gd_add_coupon'] == 'addprice')
	{
		geodir_add_edit_coupon();	
	}
	
	if(isset($_REQUEST['coupon_del']) && $_REQUEST['coupon_del'] == 'true')
	{
		geodir_del_coupon();
	}
	
	if(isset($_REQUEST['allow_coupon']) && $_REQUEST['allow_coupon'] == 'true')
	{
		geodir_allow_coupon_code();
	}
	
	if(isset($_REQUEST['subtab']) && $_REQUEST['subtab'] == 'geodir_payment_general_options')
	{
		
		geodir_update_options(geodir_payment_general_options());
		
		$msg = 'Your settings have been saved.';
		
		$msg = urlencode($msg);
		
			$location = admin_url()."admin.php?page=geodirectory&tab=paymentmanager_fields&subtab=geodir_payment_general_options&success_msg=".$msg;
		wp_redirect($location);
		exit;
		
	}
	
	if(isset($_REQUEST['subtab']) && $_REQUEST['subtab'] == 'payment_notifications')
	{
		
		geodir_update_options(geodir_payment_notifications());
		
		$msg = 'Notifications updated successfully.';
		
		$msg = urlencode($msg);
		
			$location = admin_url()."admin.php?page=geodirectory&tab=paymentmanager_fields&subtab=payment_notifications&success_msg=".$msg;
		wp_redirect($location);
		exit;
		
	}
	
	if(isset($_REQUEST['payment_ajax_data']) && $_REQUEST['payment_ajax_data'] != '')
	{
		geodir_fields_list_by_posttype($_REQUEST['post_type'], $_REQUEST['pkg_id'], $_REQUEST['cats'], $_REQUEST['payment_ajax_data']);
		exit;
	}
	
	
	if(isset($_REQUEST['payaction']) && $_REQUEST['payaction'] == 'trouble_shoot'){
		
		geodir_payment_method_update();
	
	}
	
	$task = isset( $_POST['task'] ) ? $_POST['task'] : '';
	if ( $task == 'apply_coupon' ) {
		$_wpnonce = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
		$coupon_code = isset( $_POST['coupon'] ) ? $_POST['coupon'] : '';
		
		$return = array();
		$return['reload'] = true;
		$return['success'] = false;
		
		$cart = geodir_payment_get_cart();
		
		if ( wp_verify_nonce( $_wpnonce, 'gd_cart_nonce' ) && !empty( $cart ) ) {
			$status = geodir_payment_set_coupon_code( $cart->id, $coupon_code );
						
			switch ( $status ) {
				case 1: // successfully applied
					$return['success'] = true;
					$return['msg'] = __( 'Coupon discount applied successfully.', 'geodir_payments' );
				break;
				case 2: // already applied
					$return['reload'] = false;
					$return['success'] = true;
					$return['msg'] = __( 'Coupon discount already applied.', 'geodir_payments' );
				break;
				default: // invalid
					$return['msg'] = __( 'Coupon does not exist or maximum coupon redemption limit reached!', 'geodir_payments' );
				break;
			}
		} else {
			$return['msg'] = __( 'Invalid request found. Please try again later!', 'geodir_payments' );
		}
				
		echo json_encode( $return );
		exit;
	} else if ( $task == 'invoices' ) {
		$_wpnonce = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
		
		if ( wp_verify_nonce( $_wpnonce, 'ajax_invoices_nonce' ) ) {
			echo geodir_payment_invoices_page_content( true );
			exit;
		}
		echo 0;
		exit;
	} else if ( $task == 'invoice_pay' ) {
		$return = array();
		$return['reload'] = false;
		$return['success'] = false;
		$return['msg'] = __( 'Invalid request found. Please try again later!', 'geodir_payments' );;
		
		$nonce = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
		$invoice_id = isset( $_POST['invoice_id'] ) ? (int)$_POST['invoice_id'] : '';
		
		if ( wp_verify_nonce( $nonce, 'gd_invoice_nonce_' . $invoice_id ) ) {
			$pay_for_invoice = geodir_payment_allow_pay_for_invoice( $invoice_id );
			
			if ( $pay_for_invoice && $cart_id = geodir_payment_cart_id( $invoice_id ) ) {
				do_action( 'geodir_payment_pay_for_invoice', $invoice_id );
				
				$return['reload'] = true;
				$return['success'] = true;
				$return['msg'] = NULL;
			}
		}
		echo json_encode( $return );
		exit;
	} else if ( $task == 'invoice_send' ) {
		$return = array();
		$return['success'] = false;
		$return['msg'] = __( 'Oops something wrong, invoice sending fail!', 'geodir_payments' );
		
		$nonce = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
		$invoice_id = isset( $_POST['invoice_id'] ) ? (int)$_POST['invoice_id'] : '';
		
		if ( wp_verify_nonce( $nonce, 'gd_nonce_send_invoice_' . $invoice_id ) ) {
			$sent = geodir_payment_send_invoice( $invoice_id );
			
			if ( !empty( $sent ) ) {
				$return['success'] = true;
				$return['msg'] = wp_sprintf( __( 'Invoice was successfully sent to %s', 'geodir_payments' ), $sent );
			}
		}
		echo json_encode( $return );
		exit;
	}
}