product; return isset($bundled_product) ? !self::_get_is_product_price_recurring($bundled_product) : false; } /** * Retrives fixed price for bundled product * @param $price * @param $product * * @return int */ public static function get_product_fixed_price($price, $product) { if (self::_get_is_product_price_recurring($product)) { return 0; } return $price; } /** * Builds html for product * @param $price * @param $object * * @return string */ public static function get_product_price_html($price, $object) { if ($object instanceof WC_Product_Simple) { $is_recurring = self::_get_is_product_price_recurring($object); if ($is_recurring) { $price .= ' / month'; } } return $price; } /** * Retrieves product configured price * @param $product * * @return array */ public static function get_product_price($product) { $is_recurring = self::_get_is_product_price_recurring($product); $pay_period = self::_get_product_price_pay_period($product); return array( 'price' => $product->get_price(), 'is_recurring' => $is_recurring, 'pay_period' => $pay_period ); } /** * Sets configured product price * @param $product * @param $price * @param bool $is_recurring * @param int $pay_period */ public static function set_product_price($product, $price, $is_recurring = false, $pay_period = 0) { $product->set_price($price); $product->set_regular_price($price); self::_set_is_product_price_recurring($product, $is_recurring); self::_set_product_price_pay_period($product, $pay_period); $product->save_meta_data(); } // PRIVATE private static function _get_is_product_price_recurring($product) { return $product->get_meta( '_wiaas_is_product_price_recurring', true) === 'yes'; } private static function _get_product_price_pay_period($product) { return (int) $product->get_meta( '_wiaas_product_pay_period', true); } private static function _set_is_product_price_recurring($product, $is_recurring) { $product->update_meta_data('_wiaas_is_product_price_recurring', $is_recurring ? 'yes' : 'no'); } private static function _set_product_price_pay_period($product, $pay_period) { $product->update_meta_data('_wiaas_product_pay_period', (int) $pay_period); } } Wiaas_Product_Pricing::init();