ログイン
始める

Easy Digital Downloads ドキュメント

Easy Digital Downloads のドキュメント、参考資料、チュートリアル

カスタムチェックアウトフィールド

チェックアウトフォームにカスタムフィールドを追加するのは、いくつかの関数だけで簡単にできます。以下のコードを使用すると、電話番号用と会社名用の2つの追加フィールドを追加できます。

注意:チェックアウトの住所フィールドをカスタマイズし、好きなように配置するための設定が組み込まれています。 または、カスタムチェックアウトフィールドを作成できる公式拡張機能もあります。 チェックアウトフィールドマネージャー拡張機能を表示

以下のコードは、チェックアウトフォームに電話番号フィールドを追加します。

<?php
/**
 * Adding a custom field to the checkout screen
 *
 * Covers:
 *
 * Adding a phone number field to the checkout
 * Making the phone number field required
 * Setting an error when the phone number field is not filled out
 * Storing the phone number into the payment meta
 * Adding the customer's phone number to the "view order details" screen
 * Adding a new {phone} email tag so you can display the phone number in the email notifications (standard purchase receipt or admin notification)
 */

/**
 * Display phone number field at checkout
 * Add more here if you need to
 */
function sumobi_edd_display_checkout_fields() {
?>
    <p id="edd-phone-wrap">
        <label class="edd-label" for="edd-phone">
		<?php esc_html_e( 'Phone Number', 'easy-digital-downloads' ); ?>
		<?php if ( edd_field_is_required( 'edd_phone' ) ) : ?>
			<span class="edd-required-indicator">*</span>
		<?php endif; ?>
		</label>
        <span class="edd-description" id="edd-phone-description"><?php esc_html_e( 'Enter your phone number so we can get in touch with you.', 'easy-digital-downloads' ); ?></span>
        <input class="edd_phone edd-input<?php if ( edd_field_is_required( 'edd_phone' ) ) { echo ' required'; } ?>" type="text" name="edd_phone" id="edd-phone" placeholder="<?php _e( 'Phone Number', 'easy-digital-downloads' ); ?>">
    </p>
 <?php
}
add_action( 'edd_purchase_form_user_info_fields', 'sumobi_edd_display_checkout_fields' );

/**
 * Make phone number required
 * Add more required fields here if you need to
 */
function sumobi_edd_required_checkout_fields( $required_fields ) {
    $required_fields['edd_phone'] = array(
        'error_id' => 'invalid_phone',
        'error_message' => 'Please enter a valid Phone number'
    );

    return $required_fields;
}
add_filter( 'edd_purchase_form_required_fields', 'sumobi_edd_required_checkout_fields' );

/**
 * Set error if phone number field is empty
 * You can do additional error checking here if required
 */
function sumobi_edd_validate_checkout_fields( $valid_data, $data ) {
    if ( empty( $data['edd_phone'] ) ) {
        edd_set_error( 'invalid_phone', 'Please enter your phone number.' );
    }
}
add_action( 'edd_checkout_error_checks', 'sumobi_edd_validate_checkout_fields', 10, 2 );

/**
 * Store the custom field data into EDD's order mtea
 */
function sumobi_edd_store_custom_fields( $order_id, $order_data ) {

	if ( 0 !== did_action('edd_pre_process_purchase') ) {
		$phone = isset( $_POST['edd_phone'] ) ? sanitize_text_field( $_POST['edd_phone'] ) : '';
		edd_add_order_meta( $order_id, 'phone', $phone );
	}

}
add_action( 'edd_built_order', 'sumobi_edd_store_custom_fields', 10, 2 );

/**
 * Add the phone number to the "View Order Details" page
 */
function sumobi_edd_view_order_details( $order_id ) {
	$phone = edd_get_order_meta( $order_id, 'phone', true );
?>
	<div class="column-container">
		<div class="column">
			<strong>Phone: </strong>
			<?php echo $phone; ?>
		</div>
	</div>
 <?php
}
add_action( 'edd_payment_view_details', 'sumobi_edd_view_order_details', 10, 1 );

/**
 * Add a {phone} tag for use in either the purchase receipt email or admin notification emails
 */
function sumobi_edd_add_email_tag() {

	edd_add_email_tag( 'phone', 'Customer\'s phone number', 'sumobi_edd_email_tag_phone' );
}
add_action( 'edd_add_email_tags', 'sumobi_edd_add_email_tag' );

/**
 * The {phone} email tag
 */
function sumobi_edd_email_tag_phone( $payment_id ) {
	$phone = edd_get_order_meta( $payment_id, 'phone', true );
	return $phone;
}

チェックアウトフォームは、このようになります。

そして、[ダウンロード] > [支払い履歴] のトランザクションを見ると、次のようなメタボックスが表示されます。

このコードは単なる例であり、さらに多くのフィールドを追加するために自由に調整できます。

このコード例をサイトに追加するには、次の方法をお勧めします。

新しいカスタムプラグインを作成し、その新しいプラグインにコードを貼り付けるためにPluginceptionを使用してください。

この記事は役に立ちましたか?

今日から販売を開始しましょう!

50,000人以上のスマートなストアオーナーに参加して、WordPressでデジタル製品を販売する最も簡単な方法を使い始めましょう。

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]