This document provides a comprehensive list of all hooks available within the plugin. It serves as a resource for developers aiming to enhance the plugin’s functionality.
How can I avoid currency to convert to shop’s default currency on the Cart page?
/** * Setting converted price on the checkout page. * * @param Object $cart_obj Cart Object. */ function alg_wc_cpp_set_converted_price( $cart_obj ) { if ( is_checkout() || is_page( 'checkout' ) ) { // This is necessary for WC 3.0+ if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return; if ( has_filter( 'alg_wc_cpp_convert_shop_default' ) ) { foreach ( $cart_obj->get_cart() as $cart_item ) { $do_save_prices = ( 'yes' === get_option( 'alg_wc_cpp_save_products_prices', 'no' ) ); if ( $do_save_prices ) { $product_id = alg_wc_cpp_get_product_id( $cart_item['product_id'] ); } if ( isset( $cart_item['data']->alg_wc_cpp ) ) { // Behaviour options. $convert_in_shop = ( 'convert_shop_default' === get_option( 'alg_wc_cpp_shop_behaviour', 'show_in_different' ) ); $cart_checkout_behaviour = ( $convert_in_shop ? 'convert_shop_default' : get_option( 'alg_wc_cpp_cart_checkout', 'convert_shop_default' ) ); if ( 'convert_shop_default' === $cart_checkout_behaviour ) { $exchange_rate = alg_wc_cpp_get_currency_exchange_rate( $cart_item['data']->alg_wc_cpp ); $return_price = $cart_item['data']->get_price() * $exchange_rate; if ( 'yes' === get_option( 'alg_wc_cpp_round_off_decimal_points' ) ) { $return_price = round( $return_price, 1 ); } $cart_item['data']->set_price( $return_price ); } } } } } } add_action( 'woocommerce_before_calculate_totals', 'alg_wc_cpp_set_converted_price', 20, 1 ); /** * Return false so that Product Price will be return. * * @param bool $flag false to return product price. */ function alg_wc_cpp_convert_shop_default( $flag, $alg_wc_cpp_core_class ) { return false; } add_filter( 'alg_wc_cpp_convert_shop_default', 'alg_wc_cpp_convert_shop_default', 10, 2 ); /** * Set Product Currency on cart page. * * @param bool $flag Return Product Currency. */ function alg_wc_cpp_get_currency_convert_shop_default( $flag ) { if ( is_cart() ) { // if on cart page then $cart_items = WC()->cart->get_cart(); foreach ( $cart_items as $cart_item ) { return ( isset( $cart_item['alg_wc_cpp'] ) ) ? $cart_item['alg_wc_cpp'] : false; } } return $flag; } add_filter( 'alg_wc_cpp_get_currency_convert_shop_default', 'alg_wc_cpp_get_currency_convert_shop_default', 10, 1 ); /** * Get Order Currency on edit order page. * * @param bool $status Status. * @param mixed $product_id Product ID. */ function alg_wc_cpp_get_order_currency_callback( $status, $product_id ) { if ( 'shop_order' === get_post_type( $product_id ) ) { // Get the order currency. $currency = get_post_meta( $product_id, '_order_currency', true ); if ( empty( $currency ) ) { // Check if this order is part of a subscription. $subscription_id = get_post_meta( $product_id, '_subscription_renewal', true ); // Find the currency of the parent subscription order. if ( ! empty( $subscription_id ) ) { $currency = get_post_meta( $subscription_id, '_order_currency', true ); } } return ( '' !== $currency ) ? $currency : $status; } return $status; } add_filter( 'alg_wc_cpp_get_order_currency', 'alg_wc_cpp_get_order_currency_callback', 10, 2 ); /** * Rounded whole price or rounded only decimal value. * * @param bool $flag Return true or false. */ function alg_wc_cpp_rounded_whole_price_callback( $flag ) { $flag = true; return $flag; } add_filter( 'alg_wc_cpp_rounded_whole_price', 'alg_wc_cpp_rounded_whole_price_callback', 10, 1 );