woocommerce在checkout页面自定义输入内容

woocommerce在checkout页面自定义输入内容

对接第三方支付的过程中,有几个字段需要客户端上传。需要在checkout页面让客户输入然后提交。

woocommerce在checkout页面自定义输入内容

代码 (上述样式的自定义代码)

// 添加自定义字段到结账页面
add_action('woocommerce_after_order_notes', 'custom_checkout_fields');

function custom_checkout_fields($checkout)
{
    echo '<div id="custom_checkout_field"><h3>' . __('Custom Fields') . '</h3>';

    woocommerce_form_field('cardNo', array(
        'type' => 'text',
        'class' => array('form-row-wide'),
        'label' => __('Card Number'),
        'required' => true
    ), $checkout->get_value('cardNo'));

    woocommerce_form_field('cardExpireMonth', array(
        'type' => 'text',
        'class' => array('form-row-first'),
        'label' => __('Card Expiry Month'),
        'required' => true
    ), $checkout->get_value('cardExpireMonth'));

    woocommerce_form_field('cardExpireYear', array(
        'type' => 'text',
        'class' => array('form-row-last'),
        'label' => __('Card Expiry Year'),
        'required' => true
    ), $checkout->get_value('cardExpireYear'));

    woocommerce_form_field('cardSecurityCode', array(
        'type' => 'text',
        'class' => array('form-row-wide'),
        'label' => __('Security Code'),
        'required' => true
    ), $checkout->get_value('cardSecurityCode'));

    woocommerce_form_field('cardType', array(
        'type' => 'select',
        'class' => array('form-row-wide'),
        'label' => __('Card Type'),
        'options' => array(
            'visa' => __('VISA'),
            'mastercard' => __('MASTERCARD'),
            'ae' => __('AE')
        ),
        'required' => true
    ), $checkout->get_value('cardType'));

    echo '</div>';
}

// 验证并保存输入的值
add_action('woocommerce_checkout_process', 'custom_checkout_fields_validation');

function custom_checkout_fields_validation()
{
    if (empty($_POST['cardNo'])) {
        wc_add_notice(__('Card Number is a required field.'), 'error');
    }

    if (empty($_POST['cardExpireMonth'])) {
        wc_add_notice(__('Card Expiry Month is a required field.'), 'error');
    }

    if (empty($_POST['cardExpireYear'])) {
        wc_add_notice(__('Card Expiry Year is a required field.'), 'error');
    }

    if (empty($_POST['cardSecurityCode'])) {
        wc_add_notice(__('Security Code is a required field.'), 'error');
    }

    if (empty($_POST['cardType']) || $_POST['cardType'] == '') {
        wc_add_notice(__('Card Type is a required field.'), 'error');
    }
}

// 保存输入的值
add_action('woocommerce_checkout_update_order_meta', 'save_custom_checkout_fields');

function save_custom_checkout_fields($order_id)
{
    if (!empty($_POST['cardNo'])) {
        update_post_meta($order_id, 'Card Number', sanitize_text_field($_POST['cardNo']));
    }
    if (!empty($_POST['cardExpireMonth'])) {
        update_post_meta($order_id, 'Card Expiry Month', sanitize_text_field($_POST['cardExpireMonth']));
    }
    if (!empty($_POST['cardExpireYear'])) {
        update_post_meta($order_id, 'Card Expiry Year', sanitize_text_field($_POST['cardExpireYear']));
    }
    if (!empty($_POST['cardSecurityCode'])) {
        update_post_meta($order_id, 'Security Code', sanitize_text_field($_POST['cardSecurityCode']));
    }
    if (!empty($_POST['cardType'])) {
        update_post_meta($order_id, 'Card Type', wc_clean($_POST['cardType']));
    }
}

原创文章,作者:howkunet,如若转载,请注明出处:https://www.intoep.com/wp/63979.html

(0)
wordpress自助友链申请实现
上一篇 2024-10-30 14:57
WPS Hide Login 隐藏WordPress默认登录地址的插件
下一篇 2024-11-08 17:53

相关推荐

  • 给woocommerce增加-已经发货订单状态

    给woocommerce增加-已经发货订单状态,woocommerce的默认订单状态有这样一些:代付款、正在处理、保留、已完成、已取消、已退款、已取消、失败订单这几种状态。

    2023-02-17
    4.3K0
  • Woocommerce修改默认订单号:添加前缀和后缀 – 只需几行代码

    Woocommerce修改默认订单号:添加前缀和后缀 – 只需几行代码,在WordPress系统中,订单order其实就是一种自定义文章类型,所以默认情况下,woocommerce的订单号就是这个自定义文章的ID,在实际的运营过程中,我们可能会需要对这个默认的订单ID号进行自定义,以满足实际需要。

    2023-12-18
    2.0K0
  • Woocommerce订单邮件详情中显示产品图片

    在WordPress woocommerce系统中,默认情况下,客户下单后会收到一个订单确认邮件,如果细心的你,会发现邮件内容里面都是纯文本,产品图片也不会显示。为了进一步提升客户体验度,我们现在把产品图片显示在邮件内容里面

    2023-12-18
    2.0K0
  • 修改WooCommerce国家/地区显示语言文件

    修改WooCommerce国家/地区显示语言文件修改WooCommerce国家/地区显示语言文件修改WooCommerce国家/地区显示语言文件修改WooCommerce国家/地区显示语言文件

    今天才发现WooCommerce里面默认的中国地区行政区划分不完全准确,修改这个对于我们而言主要是为了显示更友好,减少不必要的麻烦。如果你的产品销售范围不仅仅是内地,那修改这个可能还有助于你成本计算(汇率/关税/快递费等)。

    2023-11-27 WordPress相关
    2.3K0
  • woocommerce Checkout Field结账条件显示姓名及身份证号码字段

    woocommerce Checkout Field结账条件显示姓名及身份证号码字段,先看效果如下,这是海外电商平台,针对中国大陆,港澳台地区发货,由于发到中国大陆需要报关,需要姓名+身份证号码。用户要求发货地址为中国大陆就要填写姓名和身份证号码。

    2023-11-23
    1.6K0
  • WooCommerce在结帐页面上显示产品图片

    WooCommerce 结账页面的订单审查部分显示了产品名称、数量和费用,但没有产品图像,产品图像对于识别/区分相似产品或产品变体非常有用。

    2023-12-18
    1.9K0

发表回复

登录后才能评论
扫码了解
扫码了解
反馈建议
分享本页
返回顶部