You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WooCommerce订阅页面、后台及邮件中显示高级自定义字段

Solution: Add Custom Field to WooCommerce Subscriptions (Admin, Frontend, Emails)

Below is a complete implementation to add a custom field for WooCommerce Subscriptions that meets your requirements:


1. Add & Save Custom Field in Subscription Admin Edit Page

This adds a textarea field to the subscription edit screen in WordPress admin and saves its value when the subscription is updated.

// Add custom field to subscription admin edit page
add_action( 'woocommerce_subscription_after_order_details', 'add_subscription_custom_field_admin', 10, 1 );
function add_subscription_custom_field_admin( $subscription ) {
    ?>
    <div class="options_group">
        <p class="form-field">
            <label for="subscription_custom_note"><?php esc_html_e( 'Subscription Notes', 'woocommerce' ); ?></label>
            <textarea id="subscription_custom_note" name="subscription_custom_note" rows="3" cols="50"><?php echo esc_textarea( $subscription->get_meta( '_subscription_custom_note', true ) ); ?></textarea>
            <span class="description"><?php esc_html_e( 'Add custom notes for this subscription.', 'woocommerce' ); ?></span>
        </p>
    </div>
    <?php
}

// Save custom field value from admin subscription edit page
add_action( 'woocommerce_save_post_subscription', 'save_subscription_custom_field_admin', 10, 2 );
function save_subscription_custom_field_admin( $subscription_id, $subscription ) {
    if ( isset( $_POST['subscription_custom_note'] ) ) {
        $subscription->update_meta_data( '_subscription_custom_note', sanitize_textarea_field( $_POST['subscription_custom_note'] ) );
        $subscription->save();
    }
}

2. Display Custom Field on Customer's My Account Subscriptions Page

Shows the custom field value to customers in their account's subscriptions section.

// Display custom field on customer's my account subscriptions page
add_action( 'woocommerce_subscription_details_after_subscription_table', 'display_subscription_custom_field_frontend', 10, 1 );
function display_subscription_custom_field_frontend( $subscription ) {
    $custom_note = $subscription->get_meta( '_subscription_custom_note', true );
    if ( ! empty( $custom_note ) ) {
        ?>
        <div class="subscription-custom-note">
            <h3><?php esc_html_e( 'Subscription Notes', 'woocommerce' ); ?></h3>
            <p><?php echo esc_html( $custom_note ); ?></p>
        </div>
        <?php
    }
}

3. Include Custom Field in Subscription Email Notifications

Adds the custom field value to all relevant WooCommerce subscription email notifications (both plain text and HTML formats).

// Include custom field in subscription email notifications
add_action( 'woocommerce_email_order_meta', 'add_subscription_custom_field_to_emails', 10, 4 );
function add_subscription_custom_field_to_emails( $order, $sent_to_admin, $plain_text, $email ) {
    // Check if the order is a subscription
    if ( function_exists( 'wcs_is_subscription' ) && wcs_is_subscription( $order ) ) {
        $custom_note = $order->get_meta( '_subscription_custom_note', true );
        if ( ! empty( $custom_note ) ) {
            if ( $plain_text ) {
                echo "\n" . esc_html__( 'Subscription Notes:', 'woocommerce' ) . "\n" . esc_html( $custom_note ) . "\n";
            } else {
                echo '<h3>' . esc_html__( 'Subscription Notes', 'woocommerce' ) . '</h3>';
                echo '<p>' . esc_html( $custom_note ) . '</p>';
            }
        }
    }
}

Usage Notes:

  • Replace _subscription_custom_note with your preferred meta key (keep the underscore prefix for hidden meta).
  • Adjust labels like "Subscription Notes" to match your field's purpose.
  • Add this code to your child theme's functions.php file or a custom plugin (never edit core WooCommerce files).

内容的提问来源于stack exchange,提问作者user3707509

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:28:11