autoship_get_product_prices (function)

(src/products.php) Takes the (WooCommerce) $product_id as its parameter and returns an array of prices and discount percentages for that product id which can be modified using the included autoship_all_prices_array filter

Function

 /**
 * Retrieves all of a products prices with and without tax ( Autoship & WC ).
 * NOTE: This value can be modified via the autoship_all_prices_array filter.
 *
 * @param int $product_id. The product or variation id.
 * @return array The Autoship and WC prices
 */
function autoship_get_product_prices( $product_id ){

  // Get the Product
  $product = wc_get_product( $product_id );

  $prices = array();

  // The Products Current Price.
  $prices['price']                              = $product->get_price();

  // The Products Current Price including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  $prices['display_price']                      = wc_get_price_to_display( $product, array( 'price' => $prices['price'] ) );

  // The Products Regular Price if/when it's not on sale.
  $prices['regular_price']                      = $product->get_regular_price();

  // The Products Regular Price if/when it's not on sale including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  $prices['regular_display_price']              = wc_get_price_to_display( $product, array( 'price' => $prices['regular_price'] ) );

  // The Products Sale Price
  $prices['sale_price']                         = $product->get_sale_price();

  // The Products Regular Price if/when it's not on sale including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  $prices['sale_display_price']                 = wc_get_price_to_display( $product, array( 'price' => $prices['sale_price'] ) );

  // The Custom Autoship Checkout Price
  $prices['autoship_checkout_price']            = autoship_get_product_checkout_price( $product_id );

  // The Custom Autoship Checkout Price including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  $prices['autoship_checkout_display_price']    = wc_get_price_to_display( $product, array( 'price' => $prices['autoship_checkout_price'] ) );

  // The final Checkout Price ( either Autoship or WC )
  $prices['checkout_price']                     = autoship_checkout_price( $product, array( 'price' => $prices['price'], 'discount' => $prices['autoship_checkout_price'] )  );

  // Record if the price is WC or Autoship
  $prices['checkout_price_is_autoship']         = $prices['checkout_price'] != $prices['price'];

  // The final Checkout Price ( either Autoship or WC ) including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  $prices['checkout_display_price']             = wc_get_price_to_display( $product, array( 'price' => $prices['checkout_price'] ) );

  // The Custom Autoship Price for Recurring Orders
  $prices['autoship_recurring_price']           = autoship_get_product_recurring_price( $product_id );

  // The Custom Autoship Price for Recurring Orders including or excluding tax, based on the 'woocommerce_tax_display_shop' setting.
  $prices['autoship_recurring_display_price']   = wc_get_price_to_display( $product, array( 'price' => $prices['autoship_recurring_price'] ) );

  // Get the calculated Percent Discount for the Checkout Price
  $prices['autoship_percent_discount']          = autoship_percent_discount( $product, array( 'price' => $prices['regular_price'], 'discount' => $prices['autoship_checkout_price'] ) );

  // Get the calculated Percent Discount for the Recurring Price
  $prices['autoship_percent_recurring_discount']= autoship_percent_recurring_discount( $product, array( 'price' => $prices['regular_price'], 'discount' => $prices['autoship_recurring_price'] ) );

  return apply_filters('autoship_all_prices_array', $prices, $product_id, $product );
}