【问题标题】:How to create Woocommerce Custom Currency Symbol using Wordpress Plugin "Code Snippets"如何使用 Wordpress 插件“代码片段”创建 Woocommerce 自定义货币符号
【发布时间】:2019-04-16 06:01:41
【问题描述】:

我想更改 Woocommerce 以显示体积计量单位而不是货币。 似乎这样做的一种方法是修改子主题functions.php文件。但是,有人建议我不要使用名为 Code Snippets 的 Wordpress 插件。

我不确定如何正确执行此操作。我在下面包含了一些代码。本质上,我只想创建一个自定义货币来显示 m3,我可以选择它作为 Woocommerce 中的默认货币。

有些人可能想知道这到底需要什么...我正在使用 Woocommerce 为一家搬家公司创建一个体积计算器。它不是用于支付网关!

Woocommerce 使用 Code Snippets 插件在 Wordpress 上运行。

这是我到目前为止的代码......

/**
 * Custom currency and currency symbol
 */
add_filter( 'woocommerce_currencies', 'add_my_currency' );

function add_my_currency( $currencies ) {
     $currencies['ABC'] = __( 'Currency name', 'woocommerce' );
     return $currencies;
}

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

function add_my_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'ABC': $currency_symbol = 'm[sup]3[/sup]'; break;
     }
     return $currency_symbol;
}

【问题讨论】:

  • 我知道它会返回什么?

标签: php wordpress woocommerce


【解决方案1】:

尝试使用以下代码

add_filter( 'woocommerce_currencies', 'add_my_currency',20,1 );

function add_my_currency( $currencies ) { 

    $currencies['ABC'] = __( 'Currency name', 'woocommerce' ); 
    return $currencies;

}

add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 20, 2);


function add_my_currency_symbol( $currency_symbol, $currency ) {
    switch( $currency ) {
      case 'ABC': $currency_symbol = ' m³  '; 
      break; 
    } 

    return $currency_symbol; 
}

【讨论】:

  • 哇哦..你的天才。非常感谢你做的这些。最后一个问题...目前在woomcommerce 货币选择器中,该货币显示为货币名称(3)。我如何将其更改为“音量”?我假设我只是更改 $currencies['ABC'] = __('Currency name', 'woocommerce');以便货币名称显示为 Volume,但我也想包含 m3(上标为“3”
  • 非常感谢。很有魅力。请问为什么 3 不起作用而 m&sup3 起作用?
  • &sup 是 html 预定义字符,这就是为什么它很容易渲染的原因, 是一个 html 标签,当将 html 渲染成 html 时,有时它不起作用。在货币选择列表中,我们在选项标签内渲染了 html 标记,因此它应该可以工作,但之后选择列表应用了 select2 js,它将 html 转换为选项标签之间的文本,这就是为什么 3 sup> 没有在那里工作..并且 &sup 工作......
  • 默认选择列表也不允许添加 html,它会自动过滤,并且在选择列表中只允许显示任何文本
【解决方案2】:

最好尝试更改以下行:

case 'ABC': $currency_symbol = ' m ³  '; 

case 'ABC': $currency_symbol = ' & #13221;  ';

因为 HTML 编码会擦除& 之后的空格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-13
    • 2017-06-13
    • 1970-01-01
    • 2012-09-04
    • 2014-12-07
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    相关资源
    最近更新 更多