添加订单后在 WooCommerce 显示字段中添加自定义复选框

时间:2020-12-24 15:14:40

标签: woocommerce

我有这个代码:

// Add custom checkout field: woocommerce_review_order_before_submit
add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field_ritiro_sede' );
function my_custom_checkout_field_ritiro_sede() {
    echo '<div class="cw_custom_class"><h3>'.__('Ritiro presso sede CER S.r.l. &nbsp').'</h3>';
    echo '<div id="my_custom_checkout_field">';
    woocommerce_form_field( 'ritiro_sede', array(
        'type'      => 'checkbox',
        'class'     => array('input-checkbox'),
        'label'     => __('SI'),
    ),  WC()->checkout->get_value( 'ritiro_sede' ) );
    echo '</div>';
}

// Save the custom checkout field in the order meta, when checkbox has been checked
add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta_ritiro_sede', 10, 1 );
function custom_checkout_field_update_order_meta_ritiro_sede( $order_id ) {

    if ( ! empty( $_POST['ritiro_sede'] ) )
        update_post_meta( $order_id, 'ritiro_sede', $_POST['ritiro_sede'] );
}



// Display the custom field result on the order edit page (backend) when checkbox has been checked
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_custom_field_on_order_edit_pages_ritiro_sede', 10, 1 );
function display_custom_field_on_order_edit_pages_ritiro_sede( $order ){
    $ritiro_sede = get_post_meta( $order->get_id(), 'ritiro_sede', true );
    if( $ritiro_sede == 1 )
        echo '<p><strong>Ritiro In sede: </strong> <span style="color:red;">SI</span></p>';
    if( $ritiro_sede == 0 )
        echo '<p><strong>Ritiro In sede: </strong> <span style="color:red;">NO</span></p>';
}

订购后我只有一个功能有问题我看不到复选框“ritiro_sede”“SI”或“NO”:-( 我找不到错误,你能帮我吗??

 * Display field after add order
 */
add_action( 'woocommerce_thankyou', 'my_custom_checkout_field_display_order_data_ritiro_sede', 10, 1 );
add_action( 'woocommerce_view_order', 'my_custom_checkout_field_display_order_data_ritiro_sede', 10, 1 );
function my_custom_checkout_field_display_order_data_ritiro_sede( $order ){ 
echo '<p class="css_riiro_sede">'. __('Ritiro in Sede: ','theme_name') . get_post_meta( $order->get_id, 'ritiro_sede', true .'</p');
}

0 个答案:

没有答案