我正在尝试制作一个在店面主题顶部菜单下拉购物车中以不同方式显示购物车金额的插件。总金额。
问题在于某些javascript正在将金额更改回之前的金额。
因此在一系列屏幕截图中: 1:当您进入站点时显示(确定) 2:当您更改货币时显示(确定) 3:显示更改货币后大约0.5秒(不确定)
因此,当您安装插件并转到/?hh_currency = USD 或/?hh_currency = EUR 问题被看到了。 货币没有发生应有的变化。
之后可能会运行某些javascript,这会将值改回...
我制作了一个简单的插件版本来显示错误:
<?php
/**
* @package heikin_test_currency
* @version 0.1
*/
/*
Plugin Name: Heikin TESTIT - Currency
Description: Testing some currency things
Author: Heikki K
Version: 0.1
*/
if (!defined('ABSPATH'))
exit;
class hh_dual_currency_rates_test
{
public function __construct()
{
add_action( 'init', array($this, 'process_get_post' ));
add_filter( 'woocommerce_get_price_html', array($this, 'custom_price_message' ));
add_filter( 'woocommerce_cart_item_price', array($this, 'custom_price_message' ));
add_filter( 'woocommerce_cart_item_subtotal', array($this, 'custom_price_message' ));
add_filter( 'woocommerce_cart_subtotal', array($this, 'custom_price_message' ));
add_filter( 'woocommerce_cart_total', array($this, 'custom_price_message' ));
}
function custom_price_message($price)
{
if ($_SESSION['hh_currency'] == "USD")
return '<span class="woocommerce-Price-amount amount">$12.34 USD-test</span>';
else
return $price;
}
function process_get_post()
{
if( !session_id() )
session_start();
if( isset( $_GET['hh_currency'] ) )
{
$_SESSION['hh_currency'] = preg_replace("/[^A-Z]/", "", $_GET['hh_currency']);
//die($_SESSION['hh_currency']);
}
}
}
global $hh_rates;
$hh_rates = new hh_dual_currency_rates_test();