示例#1
0
文件: functions.php 项目: jaiweb/ASP
 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;
 }
示例#2
0
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;
}
示例#3
0
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;

}