小编Shi*_*ans的帖子

如何在结帐时使用WooCommerce禁用默认运费和付款选项?

我正在寻找一种方法来禁用WooCommerce上"查看购物车"和/或"结帐"页面上的默认付款选项和送货选项.

我尝试的一切都没有用.由于本节保持刷新,JS失败了.并且PHP失败,因为它在购物车中的每次更改时都会被取消选中.

知道如何做到这一点?

谢谢

php wordpress woocommerce

13
推荐指数
1
解决办法
3253
查看次数

为什么Internet Explorer 9渲染Arial比其他浏览器更强大?

出于某种原因,IE9使Arial字体比其他浏览器更大胆,例如:IE7,IE8,Chrome和Firefox.我在CSS中寻找原因却找不到任何错误.

发生的另一件事是我的大多数网站都有1或2像素的字间距,但IE9显示它太宽,所以我用正常的字间距为它做了条件css.

您可以在附加的屏幕截图中看到差异,也可以在此临时链接中找到它:http: //pat.co.il/shirg/matanuziel.com/ 左边是镀铬,右边是ie9

任何想法将不胜感激.谢谢

css fonts internet-explorer-9

6
推荐指数
1
解决办法
4621
查看次数

WordPress:将内置JS转移到jQuery延迟后被解雇

为了遵循Google Page Insights的建议,我得到了“ JS渲染块”建议,该建议与jQuery主文件有关。

我的网站使用WordPress和一些插件。其中一个插件将其JS内联。因此,当我移动jQuery到页脚中进行加载时,或者使用“ defer”模式进行加载时,jQuery is not defined内联代码都会触发。

我试图找到一种全局解决方案来“捕获”所有内联脚本,并jQuery在文档末尾执行主文件后将其延迟。

我写了一个非常适合我的解决方案。对于我的特定情况,这是非常简单的解决方案,但是我无法将其作为过滤器the_content或小部件输出。我想使它成为一个全局解决方案,所以我不必担心任何地方会触发JS。

有什么想法使它起作用吗?到目前为止,这里是我针对此特定情况的代码,它通过短代码运行:

/* Get shortcode HTML */ 
$widget_shortcode = do_shortcode($shortcode);

/* Take out all scripts into an array */
$delayed_scripts = array();
preg_match_all('#<script(.*?)</script>#is', $widget_shortcode, $match);
foreach ($match as $val){
    $delayed_script = '<script '.$val[0].'</script>';
    array_push($delayed_scripts, $delayed_script);
}

/* Remove all scripts from HTML */
$widget_shortcode = preg_replace('#<script(.*?)</script>#is', '', $widget_shortcode);

/* Echo filtered HTML */
echo $widget_shortcode;
Run Code Online (Sandbox Code Playgroud)

并且在结束</body>标记之前:

foreach ($delayed_scripts …
Run Code Online (Sandbox Code Playgroud)

wordpress jquery pagespeed wordpress-hook

5
推荐指数
1
解决办法
601
查看次数

警告:preg_match():编译失败:量词未遵循 wp-includes/class-wp.php 第 222 行中偏移量 1 处的可重复项

任何包含页面类型帖子、订单类型帖子或帖子的页面都会显示此错误。这仅在托管环境中可见。我无法在本地复制错误

我已按此顺序执行了以下操作:

  1. 停用所有插件
  2. 转到设置 - >永久链接并重新保存%postname%选项
  3. 验证错误仍然存​​在,没有插件和永久链接重置。
  4. 更新了所有插件和主题。
  5. 已验证错误仍然存​​在。
  6. 在本地执行了相同的步骤,但无法复制此问题。

来自类-wp.php:

foreach ( (array) $rewrite as $match => $query ) {
    // If the requested file is the anchor of the match, prepend it to the path info.
    if ( ! empty( $requested_file ) && strpos( $match, $requested_file ) === 0 && $requested_file != $requested_path ) {
        $request_match = $requested_file . '/' . $requested_path;
    }

    if ( preg_match( "#^$match#", $request_match, $matches ) ||
        preg_match( "#^$match#", urldecode( $request_match ), $matches ) …
Run Code Online (Sandbox Code Playgroud)

php regex wordpress woocommerce genesis

4
推荐指数
1
解决办法
2万
查看次数

重定向后丢失会话变量

  1. 用户填写用户名和密码.
  2. 如果正确,页面会加载一些信息,例如user_id会话变量.
  3. 该脚本进行header('Location')重定向.
  4. 不知怎的,下一页不承认会议......怎么来的?

重定向到同一个域,所有页面都有 session_start();

而且我发现它更有可能发生在IE中而不是FF ...奇怪.

php session

3
推荐指数
2
解决办法
2万
查看次数

jQuery选择ID为每行的第3,第4和第5个TD

我在选择表格中的正确单元格时遇到一些困难.我有一个足球比赛桌.每个表都以ID'游戏'开头,然后是序列号,即:id='game122238'.

每个表有两行.在第一行,我有5个单元格.在第二个,我有一个团队.在第三个,我有结果.第四,我有第二支队伍.

我成功选择了所有表格:

$('table[id^=game]');
Run Code Online (Sandbox Code Playgroud)

但后来我卡住了.我怎么能:A.将所有"主队"变成一个阵列.B.将所有结果放在另一个数组中.C.让所有'客队'进入第三阵容.

谢谢!

jquery jquery-selectors

2
推荐指数
1
解决办法
9406
查看次数

从PHP中的函数内部创建全局变量

我试图定义动态变量.我正在使用一个函数,但我不知道如何将新var定义为全局(因为它从未在函数之前创建).

那可能吗 ?

谢谢.


编辑

好的,这就是我建造的.那危险吗?

function extract_values($row) {
    foreach ($row as $key => $value){
        global $$key;
        $$key = $value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我试图让我的生活更轻松:

$result = mysql_query("SELECT first_name, last_name, address FROM users ORDER BY id ASC");

    while ($row = mysql_fetch_array($result)){
        extract_values($row);
#[do some stuff with the variables.]#
}
Run Code Online (Sandbox Code Playgroud)

我这样做是为了节省时间.而不是为每个列创建它自己的变量

$first_name = $row['first_name'];
Run Code Online (Sandbox Code Playgroud)

这个功能对我有用.我不明白为什么在这种情况下它可能是危险的..或者因为通常,我错过了一些东西..

php variables global function global-variables

1
推荐指数
1
解决办法
1117
查看次数

更新 WooCommerce 网站结帐页面上的运费

我们有一个自定义代码,允许最终用户选择送货城市、日期和时间。送货费率应根据城市而​​变化。结账页面上有城市选择框。

更改城市会触发 ajax,成功更改订单审核部分下显示的送货费用。到目前为止,一切都很好。遗憾的是,提交订单后价格并未到达订单。它在某个地方丢失了。

一个提示可能是,产品页面上也有相同的城市选择框,如果用户在添加到购物车时选择了它,然后去结帐,则会显示送货率并且不会丢失提交订单时。

是否需要触发任何刷新才能更新运费?

更新费率的函数(成功)

function adjust_shipping_rate( $rates ){
    global $woocommerce;

        foreach ($rates as $rate) {
            $cost = $rate->cost;
            $rate->cost = $_COOKIE['shipping_city_cost'];
        }
        return $rates;
}
add_filter( 'woocommerce_package_rates', 'adjust_shipping_rate', 50, 1 );
Run Code Online (Sandbox Code Playgroud)

更新 21-05-2017

这就是 cookie 的更新方式:一旦选择框发生更改,就会触发异步 ajax 调用并执行以下 PHP 代码。

function get_and_set_shipping_rate(){
    $shipping_city = $_POST['city'];
    $shipping_cost = get_shipping_cost_by_city($shipping_city);
    setcookie('shipping_city_cost', $shipping_cost, time() + (86400 * 30), '/'); 
    $_COOKIE['shipping_city_cost'] = $shipping_cost;
    echo 'Shipping cost updated: '.$shipping_city.' : '.$shipping_cost;
}

add_action( 'wp_ajax_get_and_set_shipping_rate', 'get_and_set_shipping_rate' );
add_action( 'wp_ajax_nopriv_get_and_set_shipping_rate', 'get_and_set_shipping_rate' );
Run Code Online (Sandbox Code Playgroud)

这是 ajax 调用: …

cookies ajax wordpress woocommerce

1
推荐指数
1
解决办法
9846
查看次数

寻找一种用于消除JS和恢复变量名称的工具

我正在寻找一个工具来解析JS文件,同时恢复整个文档中的变量名称.

例如,在unminify.com上运行缩小代码后,代码本身包含:

W.find("li.patternItem").click(function() {
Run Code Online (Sandbox Code Playgroud)

在代码的末尾有一个参考什么是W:

W = $("#pattern1")
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一个简单的脚本来恢复代码中的名称,但找不到一个.我知道自动替换可能对代码有害,但我想应该有一些聪明的方法来恢复.现在我手动完成并替换"W".用"$("#pattern1")." (匹配大小写,最后带点)所以它不会与任何W字母混合.

谢谢

javascript jquery minify unminify js-beautify

-1
推荐指数
1
解决办法
1913
查看次数