【问题标题】:Mark current currency in menu在菜单中标记当前货币
【发布时间】:2018-01-19 09:39:25
【问题描述】:

我使用 Wordpress、WooCommerce 和 WooCommerce 货币切换器。我没有使用普通(丑陋的)下拉菜单,而是在顶部栏中创建了链接来更改货币。代码如下:

jQuery(function () {
    jQuery('.woocs_curr_link').click(function () {
       window.location.href = location.protocol + '//' + location.host + 
       location.pathname + '?currency=' + jQuery(this).data('curr');
    });
 });

这是链接

<a href="#" data-curr="EUR" class="woocs_curr_link">EUR</a>

这很好用,但当前货币没有在meny中标出。可以使用以下代码进行填充:

global $WOOCS;
echo $WOOCS->storage->get_val('woocs_current_currency');

如何扩展我的代码以在顶部栏菜单中标记当前货币?

谢谢!

【问题讨论】:

  • 使用codex.wordpress.org/Function_Reference/wp_localize_script, wp_localize_script() 为你的js代码发送对象,然后在js中使用
  • 您是使用自定义链接还是为此创建 wordpress 菜单?
  • 你为什么要为此使用 JS?为什么不先在服务器端创建目标 URL,然后简单地将其作为链接的href 属性输出?
  • @CBroe 我遵循这个简短的指南:currency-switcher.com/…
  • 该指南似乎是由一个不太了解自己在做什么的人编写的...... “但如果将链接简单地放置为:&lt;a href="/?currency=USD"&gt;USD&lt;/a&gt; -它会将用户重定向到主页 - 这很不方便。” - 是的,如果使用/ 引用域根目录,就会发生这种情况......如果没有前导斜杠,这将自动解析为当前的 URL 路径。 (如果当前 URL 已经包含其他查询字符串参数,那么这些参数将会丢失,这是理所当然的 - 但不必要的 JS 解决方案也是如此。)

标签: php jquery wordpress woocommerce currency


【解决方案1】:

您可以根据给定的代码选择菜单

Javascript

//document ready
jQuery(function () {
       var currentElement ='<?php echo $_REQUEST['currency']; ?>'; // get current currency
       jQuery( 'a[ data-curr=' + currentElement + ']' ).addClass( 'selected_menu' ); // add css class for current currancy.
     });

CSS

   .selected_menu{text-decoration: underline; color: red;}

【讨论】:

    【解决方案2】:

    我是这样解决的,通过获取当前设置的货币直接在链接的帮助下,然后添加一个类来标记正确的。

    global $WOOCS;
    $curcur = $WOOCS->storage->get_val('woocs_current_currency');
    ?>
    
    <ul class="nav-menu nav-curentcy">
      <li <?php if ($curcur == 'EUR') echo " class=\"cur_cur\""; ?>>
        <a href="#" data-curr="EUR" class="woocs_curr_link">EUR</a>
      </li>
      <li <?php if ($curcur == 'USD') echo " class=\"cur_cur\""; ?>>
        <a href="#" data-curr="USD" class="woocs_curr_link">USD</a>
      </li>
      <li <?php if ($curcur == 'SEK') echo " class=\"cur_cur\""; ?>>
        <a href="#" data-curr="SEK" class="woocs_curr_link">SEK</a>
      </li>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多