Function Reference: geodir_claim_invoice_callback_claim_listing
Summary
This function has not been documented yet.
Actions
‘geodir_claim_request_status_change’ [Line: 1426]
Source Code
function geodir_claim_invoice_callback_claim_listing( $invoice_id, $new_status, $old_status = 'pending', $subscription = false ) { global $wpdb; $invoice_info = geodir_get_invoice( $invoice_id ); if ( !( !empty( $invoice_info ) && $new_status != $old_status ) ) { return false; } $invoice_data = maybe_unserialize( $invoice_info->invoice_data ); if ( empty( $invoice_data ) ) { return false; } $claim_id = isset( $invoice_data['claim_id'] ) ? $invoice_data['claim_id'] : NULL; $package_id = isset( $invoice_data['package_id'] ) ? $invoice_data['package_id'] : $invoice_data->package_id; $claim_info = geodir_claim_get_info( $claim_id ); if ( empty( $claim_info ) ) { return false; } $post_id = (int)$claim_info->list_id; $author_id = (int)$claim_info->user_id; $gd_post_info = geodir_get_post_info( $post_id ); if ( empty( $gd_post_info ) ) { return false; } if ( $new_status == 'confirmed' ) { $sql = $wpdb->prepare( "UPDATE " . GEODIR_CLAIM_TABLE . " SET status='2' WHERE list_id=%s AND user_id!=%s AND status='1'", array( $post_id, $author_id ) ); $wpdb->query($sql); geodir_save_post_meta( $post_id, 'claimed', '1' ); geodir_save_post_meta( $post_id, 'post_status', 'publish' ); $sql = $wpdb->prepare( "UPDATE $wpdb->posts SET post_author=%d WHERE ID=%d", array( (int)$author_id,(int)$post_id ) ); $wpdb->query( $sql ); $sql = $wpdb->prepare( "UPDATE " . GEODIR_CLAIM_TABLE . " SET status='1', `upgrade_pkg_id`='' WHERE pid=%d", array( $claim_id ) ); $wpdb->query( $sql ); $claim_post_info = array(); $claim_post_info['package_id'] = $package_id; geodir_save_listing_payment( $post_id, $claim_post_info ); $post_status = get_post_status( $post_id ); if ( $post_status != 'publish' ) { $post_update = array(); $post_update['ID'] = $post_id; $post_update['post_status'] = 'publish'; wp_update_post( $post_update ); } /** This action is documented in geodir_claim_functions.php */ do_action('geodir_claim_request_status_change', $claim_id, 1, $claim_info->status); // Notify to client. geodir_clientEmail( $post_id, $author_id, 'claim_approved' ); } else if ( $new_status == 'pending' ) { } else if ( $new_status == 'canceled' ) { } else if ( $new_status == 'failed' ) { } else if ( $new_status == 'onhold' ) { } return true; }