esc_js(get_woocommerce_currency_symbol()), 'currency_position' => esc_js(get_option('woocommerce_currency_pos', 'left')), 'price_decimals' => absint(wc_get_price_decimals()), 'price_decimal_separator' => esc_js(wc_get_price_decimal_separator()), 'price_thousand_separator' => esc_js(wc_get_price_thousand_separator()) )); } } public function display_pricing_table_before() { if (get_option('wc_tpp_display_position') === 'before_add_to_cart') { $this->display_pricing_table(); } } public function display_pricing_table_after() { if (get_option('wc_tpp_display_position') === 'after_add_to_cart') { $this->display_pricing_table(); } } public function display_pricing_table_after_price() { if (get_option('wc_tpp_display_position') === 'after_price') { $this->display_pricing_table(); } } public function display_pricing_table() { global $product; if (!$product || !is_a($product, 'WC_Product') || get_option('wc_tpp_display_table') !== 'yes') { return; } $product_id = $product->get_id(); $tiers = get_post_meta($product_id, '_wc_tpp_tiers', true); $packages = get_post_meta($product_id, '_wc_tpp_packages', true); if (empty($tiers) && empty($packages)) { return; } WC_TPP_Template_Loader::get_instance()->display('frontend/pricing-table.twig', array( 'product' => $product, 'tiers' => $tiers, 'packages' => $packages )); } public static function get_tier_price($product_id, $quantity) { $tiers = get_post_meta($product_id, '_wc_tpp_tiers', true); if (empty($tiers) || !is_array($tiers)) { return null; } $applicable_price = null; foreach ($tiers as $tier) { if ($quantity >= $tier['min_qty']) { $applicable_price = $tier['price']; } } return $applicable_price; } public static function get_package_price($product_id, $quantity) { $packages = get_post_meta($product_id, '_wc_tpp_packages', true); if (empty($packages) || !is_array($packages)) { return null; } foreach ($packages as $package) { if ($quantity == $package['qty']) { return $package['price']; } } return null; } } new WC_TPP_Frontend();