WooCommerce:访客结帐不起作用

2024-02-02

我一直在尝试弄清楚如何使我的支持访客结帐的网站正常运行,但到目前为止尚未成功。我激活了以下 WooCommerce 设置:

  • 启用访客结账
  • 在“结账”页面启用注册

通常,用户应该能够在不创建帐户的情况下结账,但如果愿意,也可以选择创建帐户。但如果我以访客身份下测试订单并选中“创建帐户?”框+填写用户名和密码字段,为计费和运输提供的任何信息都不会显示在“谢谢”页面或 WP 仪表板上。就像“创建帐户?”一样。框+用户名和密码将被忽略。

我怀疑这与我更改了帐户注册字段的默认位置有关。我已将它们添加到 form-login.php 文件中,以便它显示在与登录表单相同的部分中。它们最初包含在 form-b​​illing.php 字段中。请在下面找到这些文件:

表单计费.php

<?php
/**
 * Checkout billing information form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/checkout/form-billing.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.1.2
 */

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

/** @global WC_Checkout $checkout */

?>
<div id="woocommerce-billing-fields" class="woocommerce-billing-fields">
<h3 class="billing-fields-title">Billing Address</h3>
    <?php
do_action('woocommerce_before_checkout_billing_form', $checkout);
?>

    <?php
foreach ($checkout->checkout_fields['billing'] as $key => $field):
?>

        <?php
    woocommerce_form_field($key, $field, $checkout->get_value($key));
?>

    <?php
endforeach;
?>



    <?php
do_action('woocommerce_after_checkout_billing_form', $checkout);
?>




</div>

表单登录.php:

<?php wc_print_notices(); ?>
<?php echo '<div class="panel-group" id="checkout-accordion">'; ?>
<?php
/**
 * Checkout login form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/checkout/form-login.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @author         WooThemes
 * @package     WooCommerce/Templates
 * @version     2.0.0
 */

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

if (is_user_logged_in() || 'no' === get_option('woocommerce_enable_checkout_login_reminder')) {
    return;
}

echo '<div class="panel panel-default checkout-panel" id="panel-login">
    <div class="panel-heading checkout-heading" id="panel-login-heading" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-login">
      <h4 class="panel-title checkout-acc-title"> <a class="accordion-checkout">Login/Register <i id="checkout-accordion-login" class="checkout-accordion-icon">&#xe04b;</i></a> </h4>
    </div>
    <div id="collapse-login" class="panel-collapse details collapse in">
      <div class="panel-body checkout-inside"><div class="checkout-left-login"><h3 class="login-option">Login</h3>';
$info_message = apply_filters('woocommerce_checkout_login_message', '<div class="already-registered">' . __('Already registered?', 'woocommerce') . '</div>');
wc_print_notice($info_message, 'notice');

?>



<?php

woocommerce_login_form(
    array(
        'redirect' => wc_get_page_permalink( 'checkout' ),
        'hidden'   => true,
    )
);
echo '</div>';

?>


<?php
if (!is_user_logged_in() && $checkout->enable_signup):
?>

        <?php
    if ($checkout->enable_guest_checkout):
?>

            <p class="form-row form-row-wide create-account">
                <input class="input-checkbox" id="createaccount" <?php
        checked((true === $checkout->get_value('createaccount') || (true === apply_filters('woocommerce_create_account_default_checked', false))), true);
?> type="checkbox" name="createaccount" value="1" /> <label for="createaccount" class="checkbox"><?php
        _e('Create an account?', 'woocommerce');
?></label>
            </p>

        <?php
    endif;
?>

        <?php
    do_action('woocommerce_before_checkout_registration_form', $checkout);
?>

        <?php
    if (!empty($checkout->checkout_fields['account'])):
?>

<div class="checkout-right-register">
<h3 class="login-option">Create an Account</h3>
            <div class="create-account">




                <?php
        foreach ($checkout->checkout_fields['account'] as $key => $field):
?>

                    <?php
            woocommerce_form_field($key, $field, $checkout->get_value($key));
?>

                <?php
        endforeach;
?>

                <div class="clear"></div>

            </div>



<?php
    endif;
?>

        <?php
    do_action('woocommerce_after_checkout_registration_form', $checkout);
?>

    <?php
endif;
?>




<button id="toggle-login" type="button" class="register-btn-checkout" data-toggle="collapse" onclick="setCookie('panel-billing')" data-parent="#checkout-accordion" href="#collapse-billing">Continue</button>


</div><div class="or-select-guest">OR</div><button id="toggle-login2" type="button" class="guest-btn-checkout" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-billing" onclick="setCookie('panel-billing')">Checkout as Guest</button> 

<?php echo'</div></div></div>';

?>

附带说明:整个结账表单将是一个手风琴,其中包含交付+计费、交付选项和付款部分。

我错过了什么吗?我怀疑该问题可能与 Woocommerce 操作有关,但我不能确定。


您是否使用过 Woocommerce 订阅?我问这个问题是因为我刚刚遇到了类似的问题,并最终意识到访客结帐实际上适用于除订阅产品之外的任何产品。我碰巧正在使用购物车中的订阅产品来测试结账页面...由于购买订阅产品会分配用户角色,因此购物车中的产品在结账时需要一个帐户。

这可能对您的具体情况没有帮助,但也许会帮助其他人寻找答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WooCommerce:访客结帐不起作用 的相关文章

随机推荐

  • 如何通过蓝牙查询远程手机是否支持PBAP?

    假设两部Android手机通过蓝牙配对并建立连接 如何在客户端以编程方式确定远程设备 服务器 是否支持蓝牙配置文件 例如 PBAP 如果它确实支持 那么如何以编程方式启动与远程设备的 PBAP 会话 我在网上进行了广泛的搜索 但到目前为止还
  • Apache Flink:设置并行度的指南?

    我正在尝试获取一些简单的规则或指南来设置哪些值 操作员或工作 并行性 在我看来 它应该是一个数字 例如 假设我有 2 台任务管理器机器 每台都有 4 个任务槽 假设集群上没有运行其他作业 我会设置并行度吗 用于操作 喜欢过滤并映射到 8 如
  • 如何将 Jest 模拟函数的范围限制为单个测试

    我正在使用 Jest 测试库 React 编写功能测试 经过几天的绞尽脑汁 我发现当你使用 mockResolvedValue or mockResolvedValueOnce 嘲笑的范围不仅限于该测试 import React from
  • C++ 多态性和指针向量问题

    考虑以下示例代码 class Foo class Bar public Foo class FooCollection protected vector
  • 如何阻止android editText中的特殊字符?没有 Android:数字

    如何阻止android editText中的特殊字符 通过不使用机器人 数字 有没有其他方法 甚至以编程方式 EditText 有一个 onTextChanged 监听器 你可以跟踪用户输入的字符 如果该字符非法 你只需将其删除 这不是最优
  • Celery 和 RabbitMQ - 队列优先级、消费者优先级、任务优先级

    在我的 python 应用程序中 我使用 Celery 作为任务生产者和消费者 使用 RabbitMQ 作为代理 现在 我正在实施优先级 起初 它看起来根本不起作用 因为根据文档 我刚刚添加了x max priority队列的参数 我更深入
  • MKPolygon 初始化错误“调用中参数‘interiorPolygons’缺少参数”/“调用中存在额外参数”

    我正在尝试转换 MapKit 中的 Objective C 代码MKPolygon参考文献清单6 9 https developer apple com library prerelease ios documentation UserEx
  • Gradle下载源码依赖

    在 gradle 中 我有以下 build gradle 这会导致许多 JAR 被复制到 sources 文件夹中 但只有 jersey media moxy 2 22 2 sources jar 实际上包含源代码 defaultTasks
  • MVVM ViewModel 单例

    如果您不需要每个屏幕的多个实例 那么将所有 viewModels 设置为单例是错误的做法吗 是的 因为单身人士是邪恶的 https learn microsoft com en us archive blogs scottdensmore
  • 数据帧字符串操作

    我有一个数据框 其中有一列数据如下所示 AAH AAH AAR UN AAR UN AAR UN AAR UN AAV AAV AAV 我想我需要使用 apply 方法来修剪列数据 因此 如果句点之后有任何内容 则保持数据不变 但如果句点之
  • 无法连接到火狐浏览器

    我正在研究 Selenium 目前我有一个集线器连接到两个运行 Linux 和所有浏览器的虚拟机 我能够启动浏览器 直到它突然停止 Firefox 或任何其他浏览器无法启动 我收到以下错误 45000 毫秒后无法通过端口 7055 连接到主
  • Cython 程序比普通 Python 慢(10M 选项 3.5s vs 3.25s Black Scholes)-我错过了什么?

    好的 这是我的第一个 Cython 程序 它是为欧洲期货期权定价的代码 没有股息的 Black Scholes 它在 10M 选项上的运行时间为 3 5 秒 而我在下面发布的直接使用 numpy Python 3 25 的代码 谁能指出为什
  • 如何为 UserControl 中的 TabControl 提供设计器支持,以便我可以将控件拖/放到选项卡页上?

    我有一个用户控件 其中包含一个Panel 和一个TabControl 我为两者启用了设计时支持 我可以将工具箱中的控件拖 放到用户控件中的面板控件上 我还可以通过 TabControl 上的设计器添加和删除选项卡页 但是 我无法将任何控件拖
  • 为什么我们需要私有构造函数?

    如果一个类有一个私有构造函数 那么它就不能被实例化 因此 如果我不想实例化我的类并仍然使用它 那么我可以将其设为静态 私有构造函数有什么用 还有 它是用在单例类中的 但是除此之外 还有什么其他用途吗 注意 我排除上述单例情况的原因是 我不明
  • 将原始字节导入为 R 中的原始字节

    我已将数据库中的字符串导入到 R 中 数据库列类型是BYTEA Postgres 为了让我按预期使用它 它应该是类型raw 相反 它是类型character 我想在以下意义上将其转换为原始数据 字符串表示形式是 x1f8b080000000
  • Prolog查找所有路径实现

    我的任务是在 Prolog 中实现 findall 的一个版本 除了 not 和 cut 之外 不使用任何 Prolog 内置函数 所以基本上是在纯 Prolog 中 我正在尝试在树中搜索所有直系后代并在列表中返回结果 parent a b
  • PHP createFromFormat 5.2版本

    标题已经说了我想知道的一切 有什么功能吗还是我必须自己做 Thanks Edit 好的 太棒了 在我正在开发的服务器中它运行得非常完美 但在我的托管开发服务器的计算机中 我使用的是 Windows strptime gt 注意 该函数在 W
  • JSON 解析异常:无法将 VALUE_STRING 解码为 base64 (MIME-NO-LINEFEEDS):base64 内容中存在非法字符“”(代码 0x22)

    使用 Jackson 我尝试用 JSON 编码数据 但出现异常 我尝试了字符串数据和字节 数据 String representation of same data is here Bytes converted to String gt
  • 对查询集进行排序的好方法? - 姜戈

    我想做的是 获得得分最高的 30 位作者 Author objects order by score 30 作者按以下顺序排列last name 有什么建议么 关于什么 import operator auths Author object
  • WooCommerce:访客结帐不起作用

    我一直在尝试弄清楚如何使我的支持访客结帐的网站正常运行 但到目前为止尚未成功 我激活了以下 WooCommerce 设置 启用访客结账 在 结账 页面启用注册 通常 用户应该能够在不创建帐户的情况下结账 但如果愿意 也可以选择创建帐户 但如