Function Reference: geodir_user_add_claim
Summary
This function has not been documented yet.
Actions
‘geodir_payment_checkout_redirect’ [Line: 831]
Source Code
function geodir_user_add_claim(){ global $wp_query, $post, $General, $wpdb, $plugin_prefix, $current_user; if(isset($_REQUEST['add_claim_nonce_field']) && isset($_REQUEST['geodir_pid']) && is_user_logged_in()){ if ( !wp_verify_nonce( $_REQUEST['add_claim_nonce_field'], 'add_claim_nonce'.$_REQUEST['geodir_pid'] ) ){ echo "add_claim_nonce_field:fail"; return; } $list_id = $pid = $_POST['geodir_pid']; $claim_post = get_post($pid); if(isset($_POST['geodir_sendact']) && $_POST['geodir_sendact'] == 'add_claim') { $uid = $claim_post->post_author; $list_title = $claim_post->post_title; $user_id = $current_user->ID; $user_name = $current_user->user_login; $user_email = $current_user->user_email; $user_fullname = $_POST['geodir_full_name']; $user_number = $_POST['geodir_user_number']; $user_position = $_POST['geodir_user_position']; $user_comments = $_POST['geodir_user_comments']; $claim_date = date("F j, Y, g:i a"); $org_author = get_the_author_meta( 'login', $uid ); $org_authorid = $claim_post->post_author; $rand_string = createRandomString(); $user_ip = getenv("REMOTE_ADDR") ; // Force to upgrade to complete claim listing $force_upgrade = geodir_claim_force_upgrade(); $package_list = geodir_claim_payment_package_list( $claim_post->post_type ); $force_payment = $force_upgrade && $package_list ? true : false; $geodir_upgrade_pkg = ''; $package_info = array(); if ( $force_payment ) { $geodir_upgrade_pkg = isset($_POST['geodir_claim_pkg']) ? $_POST['geodir_claim_pkg'] : ''; $package_info = geodir_get_package_info_by_id( $geodir_upgrade_pkg ); if ( empty( $package_info ) || !$list_id ) { return; } } if ( $list_id ) { $claimsql = $wpdb->prepare("INSERT INTO ".GEODIR_CLAIM_TABLE." (list_id, list_title, user_id, user_name, user_email, user_fullname, user_number, user_position, user_comments, claim_date, org_author, org_authorid, rand_string, user_ip ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s, %s )", array($list_id,$list_title,$user_id,$user_name,$user_email,$user_fullname,$user_number,$user_position,$user_comments,$claim_date,$org_author,$org_authorid,$rand_string,$user_ip) ); $wpdb->query($claimsql); $claim_id = $wpdb->insert_id; geodir_adminEmail( $list_id, $user_id, 'claim_requested' ); /* email to admin*/ geodir_clientEmail( $list_id, $user_id, 'claim_requested' ); /* email to client*/ if ( get_option( 'geodir_claim_auto_approve' ) == 'yes' && !$force_payment ) { geodir_clientEmail( $list_id, $user_id, 'auto_claim', $rand_string );/* email to client*/ } // Force to upgrade to complete claim listing $upgrade_pkg_data = array(); $upgrade_pkg_data['post_id'] = $list_id; $upgrade_pkg_data['package_id'] = $geodir_upgrade_pkg; $upgrade_pkg_data['date'] = date_i18n( 'Y-m-d H:i:s', current_time( 'timestamp' ) ); $upgrade_pkg_data['amount'] = (isset($package_info->amount)) ? $package_info->amount : ''; $upgrade_pkg_data['user_id'] = $user_id; $upgrade_pkg_data['author_id'] = $org_authorid; $upgrade_pkg_data['claim_id'] = $claim_id; $post_status = get_post_status( $list_id ); // invoice data $invoice_id = NULL; if ($force_payment && !empty($package_info) && (float)$package_info->amount > 0 ) { $post_id = $list_id; $package_id = $geodir_upgrade_pkg; $alive_days = $package_info->days; 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 ); if ( $package_info->sub_num_trial_days > 0 ) { $alive_days = $sub_num_trial_days_var; } } $expire_date = $alive_days > 0 ? date_i18n( 'Y-m-d', strtotime( date_i18n( 'Y-m-d' ) . ' + ' . (int)$alive_days . ' days' ) ) : ''; $amount = $package_info->amount; $tax_amount = geodir_payment_get_tax_amount( $amount, $package_id, $post_id ); $amount = geodir_payment_price( $amount, false ); $paid_amount = ( $amount + $tax_amount ); $paid_amount = $paid_amount > 0 ? $paid_amount : 0; $payment_status = $paid_amount > 0 ? 'pending' : 'confirmed'; $invoice_type = 'claim_listing'; $invoice_callback = 'claim_listing'; $invoice_title = wp_sprintf( __( 'Claim Listing: %s', 'geodirclaim' ), get_the_title( $post_id ) ); $data = array(); $data['type'] = $amount > 0 ? 'paid' : 'free'; $data['post_id'] = $post_id; $data['post_title'] = $invoice_title; $data['post_action'] = 'claim'; $data['invoice_type'] = $invoice_type; $data['invoice_callback'] = $invoice_callback; $data['invoice_data'] = maybe_serialize( $upgrade_pkg_data ); $data['package_id'] = $package_id; $data['package_title'] = $package_info->title; $data['amount'] = $amount; $data['alive_days'] = $alive_days; $data['expire_date'] = $expire_date; $data['tax_amount'] = $tax_amount; $data['paied_amount'] = $paid_amount; $data['status'] = $payment_status; $invoice_id = geodir_create_invoice( $data ); $upgrade_pkg_data['invoice_id'] = $invoice_id; } // invoice data $upgrade_pkg_data = maybe_serialize( $upgrade_pkg_data ); $sql = $wpdb->prepare( "UPDATE " . GEODIR_CLAIM_TABLE . " SET `upgrade_pkg_id`=%d, `upgrade_pkg_data`=%s WHERE `pid`=%d", array( $geodir_upgrade_pkg, $upgrade_pkg_data, $wpdb->insert_id ) ); $wpdb->query( $sql ); if ( $invoice_id ) { $new_post_status = get_post_status( $list_id ); if ( $new_post_status != $post_status ) { $post_update = array(); $post_update['ID'] = $list_id; $post_update['post_status'] = $post_status; wp_update_post( $post_update ); } if ( $payment_status == 'confirmed' ) { geodir_update_invoice_status( $invoice_id, $payment_status ); } do_action( 'geodir_payment_checkout_redirect', $invoice_id ); } } $postlink = get_permalink( $claim_post->ID ); $url = geodir_getlink( $postlink, array( 'geodir_claim_request' => 'success' ), false ); wp_redirect($url); gd_die(); } } else { wp_redirect(geodir_login_url()); gd_die(); } }