function woo_ce_get_products($args = array()) { $limit_volume = -1; $offset = 0; $product_categories = false; $product_tags = false; $product_status = false; $product_type = false; if ($args) { $limit_volume = $args['limit_volume']; $offset = $args['offset']; if (!empty($args['product_categories'])) { $product_categories = $args['product_categories']; } if (!empty($args['product_tags'])) { $product_tags = $args['product_tags']; } if (!empty($args['product_status'])) { $product_status = $args['product_status']; } if (!empty($args['product_type'])) { $product_type = $args['product_type']; } } $post_type = array('product', 'product_variation'); $args = array('post_type' => $post_type, 'numberposts' => $limit_volume, 'offset' => $offset, 'orderby' => 'ID', 'order' => 'ASC', 'post_status' => woo_ce_post_statuses()); if ($product_categories) { $args['tax_query'] = array(array('taxonomy' => 'product_cat', 'field' => 'id', 'terms' => $product_categories)); } if ($product_tags) { $args['tax_query'] = array(array('taxonomy' => 'product_tag', 'field' => 'id', 'terms' => $product_tags)); } if ($product_status) { $args['post_status'] = woo_ce_post_statuses($product_status, true); } if ($product_type) { if (in_array('variation', $product_type)) { $args['post_type'] = 'product_variation'; } else { $args['tax_query'] = array(array('taxonomy' => 'product_type', 'field' => 'slug', 'terms' => $product_type)); } } $products = get_posts($args); if ($products) { $weight_unit = get_option('woocommerce_weight_unit'); $dimension_unit = get_option('woocommerce_dimension_unit'); $height_unit = $dimension_unit; $width_unit = $dimension_unit; $length_unit = $dimension_unit; foreach ($products as $key => $product) { $products[$key]->parent_id = ''; $products[$key]->parent_sku = ''; if ($product->post_type == 'product_variation') { $products[$key]->parent_id = $product->post_parent; $products[$key]->parent_sku = get_post_meta($product->post_parent, '_sku', true); } $products[$key]->product_id = $product->ID; $products[$key]->sku = get_post_meta($product->ID, '_sku', true); $products[$key]->name = get_the_title($product->ID); $products[$key]->description = woo_ce_clean_html($product->post_content); $products[$key]->regular_price = get_post_meta($product->ID, '_regular_price', true); $products[$key]->price = get_post_meta($product->ID, '_price', true); if (!empty($products[$key]->regular_price) && $products[$key]->regular_price != $products[$key]->price) { $products[$key]->price = $products[$key]->regular_price; } $products[$key]->sale_price = get_post_meta($product->ID, '_sale_price', true); $products[$key]->sale_price_dates_from = woo_ce_format_sale_price_dates(get_post_meta($product->ID, '_sale_price_dates_from', true)); $products[$key]->sale_price_dates_to = woo_ce_format_sale_price_dates(get_post_meta($product->ID, '_sale_price_dates_to', true)); $products[$key]->slug = $product->post_name; $products[$key]->permalink = get_permalink($product->ID); $products[$key]->excerpt = woo_ce_clean_html($product->post_excerpt); $products[$key]->type = woo_ce_get_product_assoc_type($product->ID); if ($product->post_type == 'product_variation') { $products[$key]->type = __('Variation', 'woo_ce'); } $products[$key]->visibility = woo_ce_format_visibility(get_post_meta($product->ID, '_visibility', true)); $products[$key]->featured = woo_ce_format_switch(get_post_meta($product->ID, '_featured', true)); $products[$key]->virtual = woo_ce_format_switch(get_post_meta($product->ID, '_virtual', true)); $products[$key]->downloadable = woo_ce_format_switch(get_post_meta($product->ID, '_downloadable', true)); $products[$key]->weight = get_post_meta($product->ID, '_weight', true); $products[$key]->weight_unit = $weight_unit; $products[$key]->height = get_post_meta($product->ID, '_height', true); $products[$key]->height_unit = $height_unit; $products[$key]->width = get_post_meta($product->ID, '_width', true); $products[$key]->width_unit = $width_unit; $products[$key]->length = get_post_meta($product->ID, '_length', true); $products[$key]->length_unit = $length_unit; $products[$key]->category = woo_ce_get_product_assoc_categories($product->ID); $products[$key]->tag = woo_ce_get_product_assoc_tags($product->ID); $products[$key]->manage_stock = woo_ce_format_switch(get_post_meta($product->ID, '_manage_stock', true)); $products[$key]->allow_backorders = woo_ce_format_switch(get_post_meta($product->ID, '_backorders', true)); $products[$key]->sold_individually = woo_ce_format_switch(get_post_meta($product->ID, '_sold_individually', true)); $products[$key]->upsell_ids = woo_ce_convert_product_ids(get_post_meta($product->ID, '_upsell_ids', true)); $products[$key]->crosssell_ids = woo_ce_convert_product_ids(get_post_meta($product->ID, '_crosssell_ids', true)); $products[$key]->quantity = get_post_meta($product->ID, '_stock', true); $products[$key]->stock_status = woo_ce_format_stock_status(get_post_meta($product->ID, '_stock_status', true)); $products[$key]->image = woo_ce_get_product_assoc_featured_image($product->ID); $products[$key]->product_gallery = woo_ce_get_product_assoc_product_gallery($product->ID); $products[$key]->tax_status = woo_ce_format_tax_status(get_post_meta($product->ID, '_tax_status', true)); $products[$key]->tax_class = woo_ce_format_tax_class(get_post_meta($product->ID, '_tax_class', true)); $products[$key]->product_url = get_post_meta($product->ID, '_product_url', true); $products[$key]->button_text = get_post_meta($product->ID, '_button_text', true); $products[$key]->file_download = woo_ce_get_product_assoc_file_downloads($product->ID); $products[$key]->download_limit = get_post_meta($product->ID, '_download_limit', true); $products[$key]->download_expiry = get_post_meta($product->ID, '_download_expiry', true); $products[$key]->purchase_note = get_post_meta($product->ID, '_purchase_note', true); $products[$key]->product_status = woo_ce_format_product_status($product->post_status); $products[$key]->comment_status = woo_ce_format_comment_status($product->comment_status); if ($attributes = woo_ce_get_product_attributes()) { if ($product->post_type == 'product_variation') { foreach ($attributes as $attribute) { $products[$key]->{'attribute_' . $attribute->attribute_name} = get_post_meta($product->ID, sprintf('attribute_pa_%s', $attribute->attribute_name), true); } } else { $products[$key]->attributes = maybe_unserialize(get_post_meta($product->ID, '_product_attributes', true)); if (!empty($products[$key]->attributes)) { foreach ($attributes as $attribute) { if (isset($products[$key]->attributes['pa_' . $attribute->attribute_name])) { $products[$key]->{'attribute_' . $attribute->attribute_name} = woo_ce_get_product_assoc_attributes($product->ID, $products[$key]->attributes['pa_' . $attribute->attribute_name]); } } } } } $products[$key] = apply_filters('woo_ce_product_item', $products[$key], $product->ID); } } return $products; }
function woo_ce_get_product_assoc_crosssell_ids($product_id = 0) { global $export; $output = ''; if ($product_id) { $crosssell_ids = get_post_meta($product_id, '_crosssell_ids', true); // Convert Product ID to Product SKU as per Cross-Sells Formatting if ($export->crosssell_formatting == 1 && !empty($crosssell_ids)) { $size = count($crosssell_ids); for ($i = 0; $i < $size; $i++) { $crosssell_ids[$i] = get_post_meta($crosssell_ids[$i], '_sku', true); // Remove Cross-Sell if SKU is empty if (empty($crosssell_ids[$i])) { unset($crosssell_ids[$i]); } } // 'reindex' array $crosssell_ids = array_values($crosssell_ids); } $output = woo_ce_convert_product_ids($crosssell_ids); } return $output; }
function woo_ce_get_coupon_data( $coupon_id = 0, $args = array() ) { global $export; $coupon = get_post( $coupon_id ); $coupon->coupon_code = $coupon->post_title; $coupon->discount_type = woo_ce_format_discount_type( get_post_meta( $coupon->ID, 'discount_type', true ) ); $coupon->coupon_description = $coupon->post_excerpt; $coupon->coupon_amount = get_post_meta( $coupon->ID, 'coupon_amount', true ); $coupon->individual_use = woo_ce_format_switch( get_post_meta( $coupon->ID, 'individual_use', true ) ); $coupon->apply_before_tax = woo_ce_format_switch( get_post_meta( $coupon->ID, 'apply_before_tax', true ) ); $coupon->exclude_sale_items = woo_ce_format_switch( get_post_meta( $coupon->ID, 'exclude_sale_items', true ) ); $coupon->minimum_amount = get_post_meta( $coupon->ID, 'minimum_amount', true ); $coupon->product_ids = woo_ce_convert_product_ids( get_post_meta( $coupon->ID, 'product_ids', true ) ); $coupon->exclude_product_ids = woo_ce_convert_product_ids( get_post_meta( $coupon->ID, 'exclude_product_ids', true ) ); $coupon->product_categories = woo_ce_convert_product_ids( get_post_meta( $coupon->ID, 'product_categories', true ) ); $coupon->exclude_product_categories = woo_ce_convert_product_ids( get_post_meta( $coupon->ID, 'exclude_product_categories', true ) ); $coupon->customer_email = woo_ce_convert_product_ids( get_post_meta( $coupon->ID, 'customer_email', true ) ); $coupon->usage_limit = get_post_meta( $coupon->ID, 'usage_limit', true ); $coupon->expiry_date = woo_ce_format_date( get_post_meta( $coupon->ID, 'expiry_date', true ) ); $coupon->usage_count = get_post_meta( $coupon->ID, 'usage_count', true ); $coupon->usage_cost = woo_ce_get_coupon_usage_cost( $coupon->coupon_code ); $coupon->used_by = woo_ce_convert_product_ids( get_post_meta( $coupon->ID, '_used_by', false ) ); return $coupon; }