Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

536
Views
Excessive DOM elements Currency Symbol

When I run pagespeed insight, this <span class="woocommerce-Price-currencySymbol">cause Excessive Dom Elements. I tried the following methods but to no avail. Many have encountered these issue but no one has a solution.


add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);

function change_existing_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'AUD': $currency_symbol = 'AUD'; break;
     }
     return $currency_symbol;
}


include_once __DIR__ . '/theme-includes/theme-functions.php';

And this

add_filter( 'formatted_woocommerce_price', 'span_custom_prc', 10, 5 );

function span_custom_prc( $number_format, $price, $decimals, $decimal_separator, $thousand_separator)
{
    return "<span class='woocommerce-Price-amount amount'>".$number_format."&nbsp;</span>";
}
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Use the below code snippet in your active theme functions.php.

Tested OK with WooCommerce 6

add_filter('wc_price', 'custom_wc_price', 10, 5);

/**
 * Filters the string of price markup.
 *
 * @param string       $return            Price HTML markup.
 * @param string       $price             Formatted price.
 * @param array        $args              Pass on the args.
 * @param float        $unformatted_price Price as float to allow plugins custom formatting. Since 3.2.0.
 * @param float|string $original_price    Original price as float, or empty string. Since 5.0.0.
 */
function custom_wc_price($return, $price, $args, $unformatted_price, $original_price) {
    $args = apply_filters(
            'wc_price_args',
            wp_parse_args(
                    $args,
                    array(
                        'ex_tax_label' => false,
                        'currency' => '',
                        'decimal_separator' => wc_get_price_decimal_separator(),
                        'thousand_separator' => wc_get_price_thousand_separator(),
                        'decimals' => wc_get_price_decimals(),
                        'price_format' => get_woocommerce_price_format(),
                    )
            )
    );

    $original_price = $price;

    // Convert to float to avoid issues on PHP 8.
    $price = (float) $price;

    $unformatted_price = $price;
    $negative = $price < 0;

    /**
     * Filter raw price.
     *
     * @param float        $raw_price      Raw price.
     * @param float|string $original_price Original price as float, or empty string. Since 5.0.0.
     */
    $price = $negative ? $price * -1 : $price;

    /**
     * Filter formatted price.
     *
     * @param float        $formatted_price    Formatted price.
     * @param float        $price              Unformatted price.
     * @param int          $decimals           Number of decimals.
     * @param string       $decimal_separator  Decimal separator.
     * @param string       $thousand_separator Thousand separator.
     * @param float|string $original_price     Original price as float, or empty string. Since 5.0.0.
     */
    $price = number_format($price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator']);

    if (apply_filters('woocommerce_price_trim_zeros', false) && $args['decimals'] > 0) {
        $price = wc_trim_zeros($price);
    }

    $formatted_price = ( $negative ? '-' : '' ) . sprintf($args['price_format'],  get_woocommerce_currency_symbol($args['currency']), $price);
    $return = '<span class="woocommerce-Price-amount amount"><bdi>' . $formatted_price . '</bdi></span>';

    if ($args['ex_tax_label'] && wc_tax_enabled()) {
        $return .= ' <small class="woocommerce-Price-taxLabel tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>';
    }


    return $return;
}
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!