checkout_name
チェックアウトページにカスタム商品フィールドを表示しようとしていますが、その方法がわかりません。私はここからチェックアウトフックのビジュアルガイドに従っています。
add_action( 'woocommerce_checkout_before_customer_details', 'custom_before_checkout_form', 10 );
function custom_before_checkout_form( $cart_data ){
$meta_key = 'checkout_name';
$product_id = $cart_item['product_id'];
$meta_value = get_post_meta( $product_id, $meta_key, true );
if( !empty( $cart_data ) )
$custom_items = $cart_data;
if( !empty($meta_value) ) {
$custom_items[] = array(
'key' => __('Store Name', 'woocommerce'),
'value' => $meta_value,
'display' => $meta_value,
);
}
return $custom_items;
}
カスタムチェックアウトフィールドは、チェックアウトフォーム内にある必要があります。そうでない場合、フィールド値は送信時に転記されません。
コードにもいくつかのエラーがあります。代わりに、請求フィールドの直前にあるチェックアウトフォーム内にあるフックを使用して、次のことを試してください(カスタム製品フィールドcheckout_name
が存在することを前提としています)。
add_action( 'woocommerce_checkout_before_customer_details', 'custom_before_checkout_form' );
function custom_before_checkout_form(){
// Loop though cart items
foreach ( WC()->cart->get_cart() as $item ) {
// Get the WC_Product Object
$product = $item['data'];
echo '<div align="center">' . $product->get_meta( 'checkout_name' ) . '</div><br>';
}
}
コードは、アクティブな子テーマ(またはアクティブなテーマ)のfunctions.phpファイルに入ります。それはうまくいくはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加