首页 文章

结帐中的WooCommerce自定义字段

提问于
浏览
4

我想在WooCommerce结帐页面中添加自定义字段,但是对于选定的产品 .

例如,如果客户只在购物车中有 Product A ,则此自定义字段应显示在 WooCommerce Checkout Page

我在functions.php中使用以下代码来添加自定义字段:

add_action('woocommerce_before_order_notes', 'my_delivery_checkout_field');

function my_delivery_checkout_field( $checkout ) {

echo '<div id="my_local_club"><h3>'.__('Delivery Options').'</h3>';

woocommerce_form_field( 'delivery_options', array(
'type' => 'select',
'class' => array('my-club-class form-row-wide'),
'label' => _('<br><br>Please select your options', 'woocommerce'),
'required' => true,
'placeholder' => _x('Please Select An Option...', 'placeholder','woocommerce'),
'options' => array(
'option1' => 'Option 1',
'option_2' =>'Option 2',
 'option_3' =>'Option 3'
)
), $checkout->get_value( 'delivery_options' ));

echo '</div>';

}

1 回答

  • 1

    所以下面的代码解决了我的问题,感谢StackOverFlow.com

    /**
    * Add the field to the checkout
    **/
    add_action('woocommerce_before_order_notes', 'my_delivery_checkout_field');
    
    function my_delivery_checkout_field( $checkout ) {
    
        //Check if gift card is in cart
        $book_in_cart = conditional_product_in_cart( 7267 );
    
    if ( $book_in_cart === true ) {
    echo '<div id="my_local_club"><h3>'.__('Delivery Options').'</h3>';
    
    woocommerce_form_field( 'delivery_options', array(
    'type' => 'select',
    'class' => array('my-club-class form-row-wide'),
    'label' => _('<br><br>Please select your options', 'woocommerce'),
    'required' => true,
    'placeholder' => _x('Please Select An Option...', 'placeholder','woocommerce'),
    'options' => array(
    'option1' => 'Option 1',
    'option_2' =>'Option 2',
     'option_3' =>'Option 3'
    )
    ), $checkout->get_value( 'delivery_options' ));
    
    echo '</div>';
    }
    }
    
    
    
    
    // Check if Gift card is in the cart
    
    function conditional_product_in_cart( $product_id ) {
     //Check to see if user has product in cart
     global $woocommerce;
    
     //flag no book in cart
     $book_in_cart = false;
    
     foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
     $_product = $values['data'];
    
     if ( $_product->id === $product_id ) {
     //book is in cart!
     $book_in_cart = true;
    
     }
     }
    
     return $book_in_cart;
    
    }
    

相关问题