芝麻web文件管理V1.00
编辑当前文件:/var/www/cognitio.in/wp-content/plugins/stripe-payments/includes/class-asp-order-item.php
asp_main = AcceptStripePayments::get_instance(); } public function create( $product_id, $pi_id = false ) { $item = new ASP_Product_Item( $product_id ); $post = array(); $post['post_title'] = '[Incomplete]' . $item->get_name(); if ( ! $this->asp_main->is_live ) { //Test Mode is on, we should add this to post title $post['post_title'] = '[Test Mode] ' . $post['post_title']; } $post['post_status'] = 'pending'; $post['post_type'] = 'stripe_order'; $this->id = wp_insert_post( $post ); if ( false !== $pi_id ) { update_post_meta( $this->id, 'pi_id', $pi_id ); } update_post_meta( $this->id, 'asp_product_id', $product_id ); $this->change_status( 'incomplete' ); //let's insert WP user ID into order details. Can be used to display user's transaction history. $user_id = get_current_user_id(); if ( $user_id ) { update_post_meta( $this->id, 'asp_user_id', $user_id ); } return $this->id; } public function find( $meta, $value ) { $order = get_posts( array( 'post_type' => 'stripe_order', 'meta_key' => $meta, 'meta_value' => $value, 'post_status' => 'any', ) ); if ( $order ) { $this->id = $order[0]->ID; return $this->id; } return false; } public function set_id( $id ) { $this->id = $id; } public function change_status( $new_status, $comment = false, $date = false ) { update_post_meta( $this->id, 'asp_order_status', $new_status ); $order_events = get_post_meta( $this->id, 'asp_order_events', true ); if ( empty( $order_events ) ) { $order_events = array(); } $order_events[] = array( 'status' => $new_status, 'comment' => $comment, 'date' => false === $date ? time() : $date, ); update_post_meta( $this->id, 'asp_order_events', $order_events ); } public function get_id() { return $this->id; } public function get_status() { return get_post_meta( $this->id, 'asp_order_status', true ); } public function can_create( $prod_id = false ) { $dont_create_order = $this->asp_main->get_setting( 'dont_create_order' ); return ! $dont_create_order; } public function update_legacy( $order_details, $charge_details ) { $post = array(); $post['post_title'] = $order_details['item_quantity'] . ' x ' . $order_details['item_name'] . ' - ' . AcceptStripePayments::formatted_price( $order_details['paid_amount'], $order_details['currency_code'] ); if ( $order_details['is_live'] == 0 ) { //Test Mode is on, we should add this to post title $post['post_title'] = '[Test Mode] ' . $post['post_title']; } $post['post_status'] = 'pending'; $output = ''; // Add error info in case of failure if ( ! empty( $charge_details->failure_code ) ) { $output .= '
Payment Failure Details
' . "\n"; $output .= $charge_details->failure_code . ': ' . $charge_details->failure_message; $output .= "\n\n"; } else { $post['post_status'] = 'publish'; } $order_date = date( 'Y-m-d H:i:s', $charge_details->created ); $order_date = get_date_from_gmt( $order_date, get_option( 'date_format' ) . ', ' . get_option( 'time_format' ) ); $output .= '
' . __( 'Order Details', 'stripe-payments' ) . "
\n"; $output .= __( 'Order Time', 'stripe-payments' ) . ': ' . $order_date . "\n"; $output .= __( 'Transaction ID', 'stripe-payments' ) . ': ' . $charge_details->id . "\n"; $output .= __( 'Stripe Token', 'stripe-payments' ) . ': ' . $order_details['stripeToken'] . "\n"; $output .= __( 'Description', 'stripe-payments' ) . ': ' . $order_details['charge_description'] . "\n"; $output .= '--------------------------------' . "\n"; $output .= __( 'Product Name', 'stripe-payments' ) . ': ' . $order_details['item_name'] . "\n"; $output .= __( 'Quantity', 'stripe-payments' ) . ': ' . $order_details['item_quantity'] . "\n"; $output .= __( 'Item Price', 'stripe-payments' ) . ': ' . AcceptStripePayments::formatted_price( $order_details['item_price'], $order_details['currency_code'] ) . "\n"; //check if there are any additional items available like tax and shipping cost $output .= AcceptStripePayments::gen_additional_items( $order_details ); $output .= '--------------------------------' . "\n"; $output .= __( 'Total Amount', 'stripe-payments' ) . ': ' . AcceptStripePayments::formatted_price( ( $order_details['paid_amount'] ), $order_details['currency_code'] ) . "\n"; $output .= "\n\n"; $output .= '
' . __( 'Customer Details', 'stripe-payments' ) . "
\n"; // translators: %s is email address $output .= sprintf( __( 'E-Mail Address: %s', 'stripe-payments' ), $order_details['stripeEmail'] ) . "\n"; // translators: %s is payment source (e.g. 'card' etc) $output .= sprintf( __( 'Payment Source: %s', 'stripe-payments' ), $order_details['stripeTokenType'] ) . "\n"; //Custom Fields (if set) if ( isset( $order_details['custom_fields'] ) ) { $custom_fields = ''; foreach ( $order_details['custom_fields'] as $cf ) { $custom_fields .= $cf['name'] . ': ' . $cf['value'] . "\r\n"; } $custom_fields = rtrim( $custom_fields, "\r\n" ); $output .= $custom_fields; } //Check if we have TOS enabled and need to store customer's IP and timestamp $tos_enabled = $this->asp_main->get_setting( 'tos_enabled' ); $tos_store = $this->asp_main->get_setting( 'tos_store_ip' ); if ( $tos_enabled && $tos_store ) { $ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? sanitize_text_field( $_SERVER['REMOTE_ADDR'] ) : __( 'Unknown', 'stripe-payments' ); // translators: %s is IP address $output .= sprintf( __( 'IP Address: %s', 'stripe-payments' ), $ip ) . "\n"; } //Billing address data (if any) if ( isset( $order_details['billing_address'] ) && strlen( $order_details['billing_address'] ) > 5 ) { $output .= '
' . __( 'Billing Address', 'stripe-payments' ) . "
\n"; $output .= $order_details['billing_address']; } //Shipping address data (if any) if ( isset( $order_details['shipping_address'] ) && strlen( $order_details['shipping_address'] ) > 5 ) { $output .= '
' . __( 'Shipping Address', 'stripe-payments' ) . "
\n"; $output .= $order_details['shipping_address']; } $post['post_content'] = $output; $post = apply_filters( 'asp_order_before_insert', $post, $order_details, $charge_details ); $c_post = get_post( $this->id ); $c_post->post_title = $post['post_title']; $c_post->post_status = $post['post_status']; $c_post->post_content = $post['post_content']; wp_update_post( $c_post, true ); //let's insert WP user ID into order details. Can be used to display user's transaction history. $user_id = get_current_user_id(); if ( $user_id ) { update_post_meta( $this->id, 'asp_user_id', $user_id ); } return $this->id; } }