gpt4 book ai didi

php - 过多的 DOM 元素货币符号

转载 作者:行者123 更新时间:2023-12-05 04:34:37 25 4
gpt4 key购买 nike

当我运行 pagespeed insight 时,这个 <span class="woocommerce-Price-currencySymbol">导致 Dom 元素过多。我尝试了以下方法但无济于事。许多人遇到过这些问题,但没有人有解决方案。


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';

还有这个

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>";
}

最佳答案

在您的事件主题 functions.php 中使用以下代码片段。

使用 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;
}

关于php - 过多的 DOM 元素货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71186014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com