为了账号安全,请及时绑定邮箱和手机立即绑定

在 Woocommerce 订单页面中,创建与订单 ID 相关的自定义文本字段

在 Woocommerce 订单页面中,创建与订单 ID 相关的自定义文本字段

PHP
繁星淼淼 2023-07-15 17:21:32
我需要自定义 url 必须不同,与订单 ID 相关(例如 100 个订单,100 个不同的自定义 url,每个订单页面一个)。// Display user custom fieldadd_action( 'woocommerce_order_details_before_order_table', 'add_user_custom_url_field_to_order' );function add_user_custom_url_field_to_order( $order ) {    global $current_user;    $custom_url = get_user_meta( $current_user->ID, 'custom_URL', true );    ?>    <form method="post">         <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">            <label for="custom_URL"><?php _e( 'URL', 'woocommerce' ); ?></label>            <input type="text" name="custom_URL" id="custom_URL" value="<?php echo $custom_url; ?>" />        </p>        <input type="submit" name="submit-custom_URL" value="<?php _e('RUN', 'woocommerce'); ?>" /><br/>    </form>    <?php}// Save the field as custom user dataadd_action( 'template_redirect', 'save_user_custom_url_field_from_order' );function save_user_custom_url_field_from_order() {    global $current_user;    if( isset($_POST['custom_URL']) && ! empty($_POST['custom_URL']) ){        update_user_meta( $current_user->ID, 'custom_URL', sanitize_url( $_POST['custom_URL'] ) );        wc_add_notice( __("Your custom URL has been saved saved", "woocommerce") );    }}
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

以下是将数据保存为订单自定义元数据而不是用户元数据的方法:


add_action( 'woocommerce_order_details_before_order_table', 'add_custom_url_field_to_order' );

function add_custom_url_field_to_order( $order ) {

    $custom_url = $order->get_meta( 'custom_URL' );

    ?>

    <form method="post">

         <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">

            <label for="custom_URL"><?php _e( 'URL', 'woocommerce' ); ?></label>

            <input type="text" name="custom_URL" id="custom_URL" value="<?php echo $custom_url; ?>" />

        </p>

        <input type="hidden" name="the_order_id" value="<?php echo $order->get_id(); ?>" />

        <input type="submit" name="submit-custom_URL" value="<?php _e('RUN', 'woocommerce'); ?>" /><br/>

    </form>

    <?php

}


// Save the field

add_action( 'template_redirect', 'save_custom_url_field_from_order' );

function save_custom_url_field_from_order() {

    if( isset($_POST['custom_URL']) && ! empty($_POST['custom_URL']) && isset($_POST['the_order_id']) ){

        update_post_meta( esc_attr($_POST['the_order_id']), 'custom_URL', sanitize_url( $_POST['custom_URL'] ) );

        wc_add_notice( __("Submitted data has been saved", "woocommerce") );

    }

}

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


现在,每个自定义 URL 将与订单相关,但不再与用户元数据相关。


查看完整回答
反对 回复 2023-07-15
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号