autoship_get_scheduled_order_product_data
(src > orders.php) This function gathers the product data for the orders.
It takes the following parameters:
- WC Product id
- frequency_type
- frequency
The function also includes the following filters:
- autoship_create_scheduled_order_item_product_price filter
- autoship_create_scheduled_order_item_product_sale_price filter
/**
* Gathers the scheduled order product data
*
* @param int $external_id A WC_Product id.
* @param string $frequency_type. The frequency type assigned to this product
* @param int $frequency. The actual frequency duration.
* @return array An array containing the Autoship Scheduled
* order data for the supplied WC Order
*/
function autoship_get_scheduled_order_product_data ( $external_id, $frequency_type, $frequency ) {
$product = wc_get_product( $external_id );
// Get site settings
$site_id = autoship_get_site_id();
// Item price
$item_price = floatval( $product->get_regular_price() );
$item_price = apply_filters( 'autoship_create_scheduled_order_item_product_price', $item_price, $frequency_type, $frequency,$product );
// Get the Autoship re-order Sale Price
$autoship_recurring_price = autoship_get_product_recurring_price( $external_id, $frequency_type, $frequency );
$item_recurring_price = isset( $autoship_recurring_price ) ? floatval( $autoship_recurring_price ) : NULL;
$item_recurring_price = apply_filters( 'autoship_create_scheduled_order_item_product_sale_price', $item_recurring_price, $frequency_type, $frequency,$product );
$scheduled_order_item_data = array(
"Product" => array(
"SiteId" => $site_id,
"ExternalId" => $external_id,
"Type" => substr( $product->get_type(), 0, 20 ),
"Title" => substr( autoship_get_product_display_name( $product ), 0, 100 ),
"Sku" => empty($product->get_sku()) ? null : substr( $product->get_sku(), 0, 32 ),
"Price" => $item_price,
"SalePrice" => isset( $item_recurring_price ) ? $item_recurring_price : $product->get_sale_price(),
"Length" => empty($product->get_length()) ? null : substr( $product->get_length(), 0, 10 ),
"Width" => empty($product->get_width()) ? null : substr( $product->get_width(), 0, 10 ),
"Height" => empty($product->get_height()) ? null : substr( $product->get_height(), 0, 10 ),
"Weight" => empty($product->get_weight()) ? null : substr( $product->get_weight(), 0, 10 ),
"ShippingClass" => empty($product->get_shipping_class()) ? null : substr( $product->get_shipping_class(), 0, 20 ),
"TaxClass" => empty($product->get_tax_class()) ? null : substr( $product->get_tax_class(), 0, 20 ),
"ImageUrl" => empty(autoship_get_wc_product_image_url( $external_id )) ? null : substr( autoship_get_wc_product_image_url( $external_id ), 0, 128 ),
"Url" => empty($product->get_permalink()) ? null : substr( $product->get_permalink(), 0, 128 ),
"Availability" => 'AddToScheduledOrder, ProcessScheduledOrder'
),
"Price" => $item_price,
"SalePrice" => $item_recurring_price
);
return apply_filters( 'autoship_get_scheduled_order_item_product_data', $scheduled_order_item_data, $frequency_type, $frequency );
}