function woo_ce_get_order_data( $order_id = 0, $export_type = 'order', $args = array(), $fields = array() ) { global $export; $defaults = array( 'order_items' => 'combined', 'order_items_types' => array_keys( woo_ce_get_order_items_types() ) ); $args = wp_parse_args( $args, $defaults ); // Get WooCommerce Order details $order = woo_ce_get_order_wc_data( $order_id ); $order->ID = ( isset( $order->id ) ? $order->id : $order_id ); $order->payment_status = $order->status; // Check if this is a pre-WooCommerce 2.2 instance $woocommerce_version = woo_get_woo_version(); $order->post_status = woo_ce_format_post_status( $order->post_status ); $order->user_id = get_post_meta( $order_id, '_customer_user', true ); if( $order->user_id == 0 ) $order->user_id = ''; $order->user_name = woo_ce_get_username( $order->user_id ); $order->user_role = woo_ce_format_user_role_label( woo_ce_get_user_role( $order->user_id ) ); $order->purchase_total = get_post_meta( $order_id, '_order_total', true ); $order->order_currency = get_post_meta( $order_id, '_order_currency', true ); $order->billing_first_name = get_post_meta( $order_id, '_billing_first_name', true ); $order->billing_last_name = get_post_meta( $order_id, '_billing_last_name', true ); if( empty( $order->billing_first_name ) && empty( $order->billing_first_name ) ) $order->billing_full_name = ''; else $order->billing_full_name = $order->billing_first_name . ' ' . $order->billing_last_name; $order->billing_company = get_post_meta( $order_id, '_billing_company', true ); $order->billing_address = ''; $order->billing_address_1 = get_post_meta( $order_id, '_billing_address_1', true ); $order->billing_address_2 = get_post_meta( $order_id, '_billing_address_2', true ); if( !empty( $order->billing_address_2 ) ) $order->billing_address = sprintf( apply_filters( 'woo_ce_get_order_data_billing_address', '%s %s' ), $order->billing_address_1, $order->billing_address_2 ); else $order->billing_address = $order->billing_address_1; $order->billing_city = get_post_meta( $order_id, '_billing_city', true ); $order->billing_postcode = get_post_meta( $order_id, '_billing_postcode', true ); $order->billing_state = get_post_meta( $order_id, '_billing_state', true ); $order->billing_country = get_post_meta( $order_id, '_billing_country', true ); $order->billing_state_full = woo_ce_expand_state_name( $order->billing_country, $order->billing_state ); $order->billing_country_full = woo_ce_expand_country_name( $order->billing_country ); $order->billing_phone = get_post_meta( $order_id, '_billing_phone', true ); $order->billing_email = get_post_meta( $order_id, '_billing_email', true ); // If the e-mail address is empty check if the Order has a User assigned to it if( empty( $order->billing_email ) ) { // Check if a User ID has been assigned if( !empty( $order->user_id ) ) { $user = woo_ce_get_user_data( $order->user_id ); // Check if the User is valid and e-mail assigned to User if( isset( $user->email ) ) $order->billing_email = $user->email; unset( $user ); } } $order->shipping_first_name = get_post_meta( $order_id, '_shipping_first_name', true ); $order->shipping_last_name = get_post_meta( $order_id, '_shipping_last_name', true ); if( empty( $order->shipping_first_name ) && empty( $order->shipping_last_name ) ) $order->shipping_full_name = ''; else $order->shipping_full_name = $order->shipping_first_name . ' ' . $order->shipping_last_name; $order->shipping_company = get_post_meta( $order_id, '_shipping_company', true ); $order->shipping_address = ''; $order->shipping_address_1 = get_post_meta( $order_id, '_shipping_address_1', true ); $order->shipping_address_2 = get_post_meta( $order_id, '_shipping_address_2', true ); if( !empty( $order->billing_address_2 ) ) $order->shipping_address = sprintf( apply_filters( 'woo_ce_get_order_data_shipping_address', '%s %s' ), $order->shipping_address_1, $order->shipping_address_2 ); else $order->shipping_address = $order->shipping_address_1; $order->shipping_city = get_post_meta( $order_id, '_shipping_city', true ); $order->shipping_postcode = get_post_meta( $order_id, '_shipping_postcode', true ); $order->shipping_state = get_post_meta( $order_id, '_shipping_state', true ); $order->shipping_country = get_post_meta( $order_id, '_shipping_country', true ); $order->shipping_state_full = woo_ce_expand_state_name( $order->shipping_country, $order->shipping_state ); $order->shipping_country_full = woo_ce_expand_country_name( $order->shipping_country ); $order->shipping_phone = get_post_meta( $order_id, '_shipping_phone', true ); if( $export_type == 'order' ) { $order->post_id = $order->purchase_id = $order_id; $order->order_discount = get_post_meta( $order_id, '_cart_discount', true ); $order->coupon_code = woo_ce_get_order_assoc_coupon( $order_id ); if( !empty( $order->coupon_code ) ) { $coupon = get_page_by_title( $order->coupon_code, OBJECT, 'shop_coupon' ); if( $coupon !== null ) $order->coupon_description = $coupon->post_excerpt; unset( $coupon ); } $order->order_sales_tax = get_post_meta( $order_id, '_order_tax', true ); $order->order_shipping_tax = get_post_meta( $order_id, '_order_shipping_tax', true ); $order->purchase_total_tax = ( $order->order_sales_tax - $order->order_shipping_tax ); $order->order_excl_tax = ( $order->purchase_total - $order->purchase_total_tax ); // Order Tax Percentage - Order Total - Total Tax / Total Tax if( !empty( $order->purchase_total_tax ) && !empty( $order->purchase_total ) ) $order->order_tax_percentage = absint( ( $order->purchase_total - $order->purchase_total_tax ) / $order->purchase_total_tax ) . '%'; $order->purchase_total = woo_ce_format_price( $order->purchase_total, $order->order_currency ); $order->order_sales_tax = woo_ce_format_price( $order->order_sales_tax, $order->order_currency ); $order->order_shipping_tax = woo_ce_format_price( $order->order_shipping_tax, $order->order_currency ); $order->purchase_subtotal = woo_ce_format_price( $order->order_excl_tax, $order->order_currency ); $order->order_discount = woo_ce_format_price( $order->order_discount, $order->order_currency ); $order->order_excl_tax = woo_ce_format_price( $order->order_excl_tax, $order->order_currency ); $order->payment_status = woo_ce_format_order_status( $order->payment_status ); $order->payment_gateway_id = get_post_meta( $order_id, '_payment_method', true ); $order->payment_gateway = woo_ce_format_order_payment_gateway( $order->payment_gateway_id ); // WooCommerce 2.1 stores the shipping method in cart items, includes fallback support if( method_exists( $order, 'get_shipping_method' ) ) { $order->shipping_method_id = woo_ce_get_order_assoc_shipping_method_id( $order_id ); $order->shipping_method = $order->get_shipping_method(); } else { $order->shipping_method_id = get_post_meta( $order_id, '_shipping_method', true ); $order->shipping_method = ''; } $order->shipping_cost = woo_ce_format_price( get_post_meta( $order_id, '_order_shipping', true ), $order->order_currency ); $order->shipping_weight = ''; $order->order_key = get_post_meta( $order_id, '_order_key', true ); $order->purchase_date = woo_ce_format_date( $order->order_date ); $order->purchase_time = mysql2date( 'H:i:s', $order->order_date ); $order->ip_address = woo_ce_format_ip_address( get_post_meta( $order_id, '_customer_ip_address', true ) ); $order->browser_agent = get_post_meta( $order_id, '_customer_user_agent', true ); $order->has_downloads = 0; $order->has_downloaded = 0; // Order Downloads if( $order_downloads = woo_ce_get_order_assoc_downloads( $order_id ) ) { $order->has_downloads = 1; foreach( $order_downloads as $order_download ) { // Check if any download permissions have counts against them if( $order_download->download_count > 0 ) { $order->has_downloaded = 1; break; } } } unset( $order_downloads, $order_download ); $order->has_downloads = woo_ce_format_switch( $order->has_downloads ); $order->has_downloaded = woo_ce_format_switch( $order->has_downloaded ); $order->customer_notes = ''; $order->order_notes = ''; $order->total_quantity = 0; $order->total_order_items = 0; // Order Notes if( $order_notes = woo_ce_get_order_assoc_notes( $order_id ) ) { if( WOO_CD_DEBUG ) $order->order_notes = implode( $export->category_separator, $order_notes ); else $order->order_notes = implode( "\n", $order_notes ); unset( $order_notes ); } // Customer Notes if( $order_notes = woo_ce_get_order_assoc_notes( $order_id, 'customer_note' ) ) { if( WOO_CD_DEBUG ) $order->customer_notes = implode( $export->category_separator, $order_notes ); else $order->customer_notes = implode( "\n", $order_notes ); unset( $order_notes ); } if( $order->order_items = woo_ce_get_order_items( $order_id, $args['order_items_types'] ) ) { $order->total_order_items = count( $order->order_items ); if( $args['order_items'] == 'combined' ) { $order->order_items_product_id = ''; $order->order_items_variation_id = ''; $order->order_items_sku = ''; $order->order_items_name = ''; $order->order_items_variation = ''; $order->order_items_description = ''; $order->order_items_excerpt = ''; $order->order_items_tax_class = ''; $order->order_items_quantity = ''; $order->order_items_total = ''; $order->order_items_subtotal = ''; $order->order_items_rrp = ''; $order->order_items_stock = ''; $order->order_items_tax = ''; $order->order_items_tax_subtotal = ''; $order->order_items_type = ''; $order->order_items_category = ''; $order->order_items_tag = ''; $order->order_items_total_sales = ''; $order->order_items_weight = ''; $order->order_items_total_weight = ''; if( !empty( $order->order_items ) ) { foreach( $order->order_items as $order_item ) { if( empty( $order_item->sku ) ) $order_item->sku = ''; $order->order_items_product_id .= $order_item->product_id . $export->category_separator; $order->order_items_variation_id .= $order_item->variation_id . $export->category_separator; $order->order_items_sku .= $order_item->sku . $export->category_separator; $order->order_items_name .= $order_item->name . $export->category_separator; $order->order_items_variation .= $order_item->variation . $export->category_separator; $order->order_items_description .= woo_ce_format_description_excerpt( $order_item->description ) . $export->category_separator; $order->order_items_excerpt .= woo_ce_format_description_excerpt( $order_item->excerpt ) . $export->category_separator; $order->order_items_tax_class .= $order_item->tax_class . $export->category_separator; $order->total_quantity += $order_item->quantity; if( empty( $order_item->quantity ) && '0' != $order_item->quantity ) $order_item->quantity = ''; $order->order_items_quantity .= $order_item->quantity . $export->category_separator; $order->order_items_total .= $order_item->total . $export->category_separator; $order->order_items_subtotal .= $order_item->subtotal . $export->category_separator; $order->order_items_rrp .= $order_item->rrp . $export->category_separator; $order->order_items_stock .= $order_item->stock . $export->category_separator; $order->order_items_tax .= $order_item->tax . $export->category_separator; $order->order_items_tax_subtotal .= $order_item->tax_subtotal . $export->category_separator; $order->order_items_type .= $order_item->type . $export->category_separator; $order->order_items_category .= $order_item->category . $export->category_separator; $order->order_items_tag .= $order_item->tag . $export->category_separator; $order->order_items_total_sales .= $order_item->total_sales . $export->category_separator; $order->order_items_weight .= $order_item->weight . $export->category_separator; $order->order_items_total_weight .= $order_item->total_weight . $export->category_separator; // Add Order Item weight to Shipping Weight if( $order_item->total_weight != '' ) $order->shipping_weight = $order->shipping_weight + $order_item->total_weight; } $order->order_items_product_id = substr( $order->order_items_product_id, 0, -1 ); $order->order_items_variation_id = substr( $order->order_items_variation_id, 0, -1 ); $order->order_items_sku = substr( $order->order_items_sku, 0, -1 ); $order->order_items_name = substr( $order->order_items_name, 0, -1 ); $order->order_items_variation = substr( $order->order_items_variation, 0, -1 ); $order->order_items_description = substr( $order->order_items_description, 0, -1 ); $order->order_items_excerpt = substr( $order->order_items_excerpt, 0, -1 ); $order->order_items_tax_class = substr( $order->order_items_tax_class, 0, -1 ); $order->order_items_quantity = substr( $order->order_items_quantity, 0, -1 ); $order->order_items_total = substr( $order->order_items_total, 0, -1 ); $order->order_items_subtotal = substr( $order->order_items_subtotal, 0, -1 ); $order->order_items_rrp = substr( $order->order_items_rrp, 0, -1 ); $order->order_items_stock = substr( $order->order_items_stock, 0, -1 ); $order->order_items_tax = substr( $order_item->tax, 0, -1 ); $order->order_items_tax_subtotal = substr( $order_item->tax_subtotal, 0, -1 ); $order->order_items_type = substr( $order->order_items_type, 0, -1 ); $order->order_items_category = substr( $order->order_items_category, 0, -1 ); $order->order_items_tag = substr( $order->order_items_tag, 0, -1 ); $order->order_items_total_sales = substr( $order->order_items_total_sales, 0, -1 ); $order->order_items_weight = substr( $order->order_items_weight, 0, -1 ); $order->order_items_total_weight = substr( $order->order_items_total_weight, 0, -1 ); } $order = apply_filters( 'woo_ce_order_items_combined', $order ); } else if( $args['order_items'] == 'unique' ) { if( !empty( $order->order_items ) ) { $i = 1; foreach( $order->order_items as $order_item ) { $order->{sprintf( 'order_item_%d_product_id', $i )} = $order_item->product_id; $order->{sprintf( 'order_item_%d_variation_id', $i )} = $order_item->variation_id; $order->{sprintf( 'order_item_%d_sku', $i )} = ( empty( $order_item->sku ) == false ? $order_item->sku : '' ); $order->{sprintf( 'order_item_%d_name', $i )} = $order_item->name; $order->{sprintf( 'order_item_%d_variation', $i )} = $order_item->variation; $order->{sprintf( 'order_item_%d_description', $i )} = $order_item->description; $order->{sprintf( 'order_item_%d_excerpt', $i )} = $order_item->excerpt; $order->{sprintf( 'order_item_%d_tax_class', $i )} = $order_item->tax_class; $order->total_quantity += $order_item->quantity; if( empty( $order_item->quantity ) && '0' != $order_item->quantity ) $order_item->quantity = ''; $order->{sprintf( 'order_item_%d_quantity', $i )} = $order_item->quantity; $order->{sprintf( 'order_item_%d_total', $i )} = $order_item->total; $order->{sprintf( 'order_item_%d_subtotal', $i )} = $order_item->subtotal; $order->{sprintf( 'order_item_%d_rrp', $i )} = $order_item->rrp; $order->{sprintf( 'order_item_%d_stock', $i )} = $order_item->stock; $order->{sprintf( 'order_item_%d_tax', $i )} = $order_item->tax; $order->{sprintf( 'order_item_%d_tax_subtotal', $i )} = $order_item->tax_subtotal; $order->{sprintf( 'order_item_%d_type', $i )} = $order_item->type; $order->{sprintf( 'order_item_%d_category', $i )} = $order_item->category; $order->{sprintf( 'order_item_%d_tag', $i )} = $order_item->tag; $order->{sprintf( 'order_item_%d_total_sales', $i )} = $order_item->total_sales; $order->{sprintf( 'order_item_%d_weight', $i )} = $order_item->weight; $order->{sprintf( 'order_item_%d_total_weight', $i )} = $order_item->total_weight; // Add Order Item weight to Shipping Weight if( $order_item->total_weight != '' ) $order->shipping_weight = $order->shipping_weight + $order_item->total_weight; $order = apply_filters( 'woo_ce_order_items_unique', $order, $i, $order_item ); $i++; } } } } // Custom Order fields $custom_orders = woo_ce_get_option( 'custom_orders', '' ); if( !empty( $custom_orders ) ) { foreach( $custom_orders as $custom_order ) { if( !empty( $custom_order ) ) { $order->{$custom_order} = woo_ce_format_custom_meta( get_post_meta( $order_id, $custom_order, true ) ); } } } } else if( $export_type = 'customer' ) { // Check if the Order has a User assigned to it if( !empty( $order->user_id ) ) { // Load up the User data as other Plugins will use it too $user = woo_ce_get_user_data( $order->user_id ); // WooCommerce Follow-Up Emails - http://www.woothemes.com/products/follow-up-emails/ if( class_exists( 'FollowUpEmails' ) ) { global $wpdb; if( isset( $user->email ) ) { $followup_optout_sql = $wpdb->prepare( "SELECT `id` FROM `" . $wpdb->prefix . "followup_email_excludes` WHERE `email` = %s LIMIT 1", $user->email ); $order->followup_optout = $wpdb->get_var( $followup_optout_sql ); } } // Custom User fields $custom_users = woo_ce_get_option( 'custom_users', '' ); if( !empty( $custom_users ) ) { foreach( $custom_users as $custom_user ) { if( !empty( $custom_user ) && !isset( $order->{$custom_user} ) ) { $order->{$custom_user} = woo_ce_format_custom_meta( get_user_meta( $order->user_id, $custom_user, true ) ); } } } unset( $custom_users, $custom_user ); // Clean up unset( $user ); } // Custom Customer fields $custom_customers = woo_ce_get_option( 'custom_customers', '' ); if( !empty( $custom_customers ) ) { foreach( $custom_customers as $custom_customer ) { if( !empty( $custom_customer ) ) $order->{$custom_customer} = esc_attr( get_user_meta( $order->user_id, $custom_customer, true ) ); } } } $order = apply_filters( 'woo_ce_order', $order, $order_id ); // Trim back the Order just to requested export fields if( !empty( $fields ) ) { $fields[] = 'id'; if( $args['order_items'] == 'individual' ) $fields[] = 'order_items'; if( !empty( $order ) ) { foreach( $order as $key => $data ) { if( !in_array( $key, $fields ) ) unset( $order->$key ); } } } return $order; }
function woo_ce_fail_notices() { $troubleshooting_url = 'http://www.visser.com.au/documentation/store-exporter-deluxe/usage/'; // If the failed flag is set then prepare for an error notice if( isset( $_GET['failed'] ) ) { $message = ''; if( isset( $_GET['message'] ) ) $message = urldecode( $_GET['message'] ); if( $message ) $message = sprintf( __( 'A WordPress or server error caused the exporter to fail, the exporter was provided with a reason: <em>%s</em>', 'woo_ce' ), $message ) . ' (<a href="' . $troubleshooting_url . '" target="_blank">' . __( 'Need help?', 'woo_ce' ) . '</a>)'; else $message = __( 'A WordPress or server error caused the exporter to fail, no reason was provided, please get in touch so we can reproduce and resolve this with you.', 'woo_ce' ) . ' (<a href="' . $troubleshooting_url . '" target="_blank">' . __( 'Need help?', 'woo_ce' ) . '</a>)'; woo_cd_admin_notice_html( $message, 'error' ); } // Displays a HTML notice where the memory allocated to WordPress falls below 64MB if( !woo_ce_get_option( 'dismiss_execution_time_prompt', 0 ) ) { $max_execution_time = absint( ini_get( 'max_execution_time' ) ); $response = ini_set( 'max_execution_time', 120 ); if( $response == false || ( $response != $max_execution_time ) ) { $dismiss_url = esc_url( add_query_arg( 'action', 'dismiss_execution_time_prompt' ) ); $message = sprintf( __( 'We could not override the PHP configuration option <code>max_execution_time</code>, this will limit the size of possible exports. See: <a href="%s" target="_blank">Increasing PHP max_execution_time configuration option</a>', 'woo_ce' ), $troubleshooting_url ) . '<span style="float:right;"><a href="' . $dismiss_url . '">' . __( 'Dismiss', 'woo_ce' ) . '</a></span>'; woo_cd_admin_notice_html( $message, 'error' ); } ini_set( 'max_execution_time', $max_execution_time ); } // Displays a HTML notice where the memory allocated to WordPress falls below 64MB if( !woo_ce_get_option( 'dismiss_memory_prompt', 0 ) ) { $memory_limit = absint( ini_get( 'memory_limit' ) ); $minimum_memory_limit = 64; if( $memory_limit < $minimum_memory_limit ) { $dismiss_url = esc_url( add_query_arg( 'action', 'dismiss_memory_prompt' ) ); $message = sprintf( __( 'We recommend setting memory to at least %dMB, your site has only %dMB allocated to it. See: <a href="%s" target="_blank">Increasing memory allocated to PHP</a>', 'woo_ce' ), $minimum_memory_limit, $memory_limit, $troubleshooting_url ) . '<span style="float:right;"><a href="' . $dismiss_url . '">' . __( 'Dismiss', 'woo_ce' ) . '</a></span>'; woo_cd_admin_notice_html( $message, 'error' ); } } // Displays a HTML notice if PHP 5.2 is installed if( version_compare( phpversion(), '5.3', '<' ) && !woo_ce_get_option( 'dismiss_php_legacy', 0 ) ) { $dismiss_url = esc_url( add_query_arg( 'action', 'dismiss_php_legacy' ) ); $message = sprintf( __( 'Your PHP version (%s) is not supported and is very much out of date, since 2010 all users are strongly encouraged to upgrade to PHP 5.3+ and above. Contact your hosting provider to make this happen. See: <a href="%s" target="_blank">Migrating from PHP 5.2 to 5.3</a>', 'woo_ce' ), phpversion(), $troubleshooting_url ) . '<span style="float:right;"><a href="' . $dismiss_url . '">' . __( 'Dismiss', 'woo_ce' ) . '</a></span>'; woo_cd_admin_notice_html( $message, 'error' ); } // Displays HTML notice if there are more than 2500 Subscriptions if( !woo_ce_get_option( 'dismiss_subscription_prompt', 0 ) ) { if( class_exists( 'WC_Subscriptions' ) ) { if( method_exists( 'WC_Subscriptions', 'is_large_site' ) ) { // Does this store have roughly more than 3000 Subscriptions if( WC_Subscriptions::is_large_site() ) { $dismiss_url = esc_url( add_query_arg( 'action', 'dismiss_subscription_prompt' ) ); $message = __( 'We\'ve detected the <em>is_large_site</em> flag has been set within WooCommerce Subscriptions. Please get in touch if exports are incomplete as we need to spin up an alternative export process to export Subscriptions from large stores.', 'woo_ce' ) . ' (<a href="' . $troubleshooting_url . '" target="_blank">' . __( 'Need help?', 'woo_ce' ) . '</a>)' . '<span style="float:right;"><a href="' . $dismiss_url . '">' . __( 'Dismiss', 'woo_ce' ) . '</a></span>'; woo_cd_admin_notice_html( $message, 'error' ); } } } } // If the export failed the WordPress Transient will still exist if( get_transient( WOO_CD_PREFIX . '_running' ) ) { $message = __( 'A WordPress or server error caused the exporter to fail with a blank screen, this is usually isolated to a memory or timeout issue, please get in touch so we can reproduce and resolve this.', 'woo_ce' ) . ' (<a href="' . $troubleshooting_url . '" target="_blank">' . __( 'Need help?', 'woo_ce' ) . '</a>)'; woo_cd_admin_notice_html( $message, 'error' ); delete_transient( WOO_CD_PREFIX . '_running' ); } // If the woo_cd_exported WordPress Option exists then an Order export failed and we should roll back changes if( woo_ce_get_option( 'exported', false ) ) { $orders = woo_ce_get_option( 'exported', false ); if( !empty( $orders ) ) { foreach( $orders as $order_id ) { // Remove the export flag delete_post_meta( $order_id, '_woo_cd_exported' ); // Add an additional Order Note $order = woo_ce_get_order_wc_data( $order_id ); $note = __( 'Order export flag was cleared due to a failed export.', 'woo_ce' ); $order->add_order_note( $note ); unset( $order ); } } unset( $orders, $order_id ); $message = __( 'It looks like a previous Orders export failed before it could complete, we have removed the exported flag assigned to those Orders so they are not excluded from your next export using <em>Filter Orders by Order Date</em> > <em>Since last export</em>.', 'woo_ce' ) . ' (<a href="' . $troubleshooting_url . '" target="_blank">' . __( 'Need help?', 'woo_ce' ) . '</a>)'; woo_cd_admin_notice_html( $message ); delete_option( WOO_CD_PREFIX . '_exported' ); } /* // If the sed-exports folder within Uploads does not exist // @mod - Will work on the next minor release $upload_dir = wp_upload_dir(); if( !file_exists( $upload_dir['basedir'] . '/sed-exports/.htaccess' ) && woo_ce_get_option( 'dismiss_secure_archives_prompt', false ) == false ) { $dismiss_url = esc_url( add_query_arg( 'action', 'dismiss_secure_archives_prompt' ) ); $action_url = esc_url( add_query_arg( 'action', 'relocate_archived_exports' ) ); $message = __( 'It looks like your exports are out in the open, let\'s move them to a secure location within the WordPres Uploads directory.', 'woo_ce' ) . ' (<a href="' . $troubleshooting_url . '" target="_blank">' . __( 'Need help?', 'woo_ce' ) . '</a>)' . '<span style="float:right;"><a href="' . $dismiss_url . '">' . __( 'Dismiss', 'woo_ce' ) . '</a></span>' . '<br /><br /><a href="' . $action_url . '" class="button-primary">' . __( 'Re-locate archived exports', 'woo_ce' ) . '</a>'; woo_cd_admin_notice_html( $message, 'error' ); } */ }
function woo_ce_get_subscription_data( $subscription ) { $order = woo_ce_get_order_wc_data( $subscription['order_id'] ); $order_item = woo_ce_get_subscription_order_item( $subscription['order_id'], $subscription['product_id'] ); $product = woo_ce_get_subscription_product( $order, $order_item ); $subscription['key'] = woo_ce_get_subscription_key( $subscription['order_id'], $subscription['product_id'] ); $subscription['name'] = $order_item['name']; if( isset( $product->variation_data ) ) $subscription['name'] = ( function_exists( 'woocommerce_get_formatted_variation' ) ? woocommerce_get_formatted_variation( $product->variation_data, true ) : $subscription['name'] ); else $subscription['variation_id'] = ''; $subscription['order_status'] = woo_ce_format_order_status( $order->status ); $subscription['post_status'] = ucwords( $order->post_status ); $subscription['user_id'] = get_post_meta( $subscription['order_id'], '_customer_user', true ); $subscription['user'] = woo_ce_get_username( $subscription['user_id'] ); $user = woo_ce_get_user_data( $subscription['user_id'] ); $subscription['email'] = ( isset( $user->email ) ? $user->email : '' ); unset( $user ); $subscription['status'] = ( isset( $subscription_statuses[$subscription['status']] ) ? $subscription_statuses[$subscription['status']] : $subscription['status'] ); $subscription['start_date'] = date_i18n( woocommerce_date_format(), strtotime( $order_item['subscription_start_date'] ) ); $subscription['expiration'] = ( !empty( $subscription['expiry_date'] ) ? woo_ce_format_subscription_date( $subscription['expiry_date'] ) : __( 'Never', 'woocommerce-subscriptions' ) ); $subscription['end_date'] = ( !empty( $order_item['subscription_expiry_date'] ) ? date_i18n( woocommerce_date_format(), strtotime( $order_item['subscription_expiry_date'] ) ) : __( 'Not yet ended', 'woocommerce-subscriptions' ) ); $subscription['trial_end_date'] = ( !empty( $order_item['subscription_trial_expiry_date'] ) ? date_i18n( woocommerce_date_format(), strtotime( $order_item['subscription_trial_expiry_date'] ) ) : '-' ); $subscription['last_payment'] = ( !empty( $subscription['last_payment_date'] ) ? woo_ce_format_subscription_date( $subscription['last_payment_date'] ) : '-' ); $subscription['next_payment'] = woo_ce_get_subscription_next_payment( $subscription['key'], $subscription['user_id'] ); $subscription['renewals'] = woo_ce_get_subscription_renewals( $subscription['order_id'] ); if( method_exists( $product, 'get_sku' ) ) $subscription['product_sku'] = $product->get_sku(); $subscription['coupon'] = woo_ce_get_order_assoc_coupon( $subscription['order_id'] ); return $subscription; }