【问题标题】:Display custom checkbox field state on WooCommerce thankyou page在 WooCommerce 感谢页面上显示自定义复选框字段状态
【发布时间】:2021-04-04 18:49:38
【问题描述】:

基于我之前的问题+问题的答案

How to save from WooCommerce checkout a custom checkbox field state?

我在 WooCommerce 结帐页面上有一个额外的复选框,但是当订单完成后,我在感谢页面上看不到额外的字段。 当复选框被选中或未选中时,我的复选框将值 10 保存在 meta_data

$order->update_meta_data( 'ritiro_sede', $value );

如果复选框被选中,我想看到单词SI,如果复选框未被选中,我想看到单词NO,但是这个功能不起作用:

有谁知道可能出了什么问题?

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 ){ 
    $ritiro_sede = get_post_meta( $order_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>';
    //echo '<p>'. __('Ritiro in Sede: ') . get_post_meta($order->get_id(), 'ritiro_sede', true .'</p');
    //echo '<p>'. __('Ritiro in Sede: ','theme_name') . get_value($order->get_the_id(), 'ritiro_sede', true .'</p>');       
}

【问题讨论】:

    标签: php wordpress checkbox woocommerce checkout


    【解决方案1】:

    1)你会犯的第一个错误是使用$order作为参数,而这应该是$order_id

    所以这个

    function my_custom_checkout_field_display_order_data_ritiro_sede( $order ){ 
    

    变成

    function my_custom_checkout_field_display_order_data_ritiro_sede( $order_id ){
    

    2)第二个错误是你使用$order_id,而它没有定义

    $ritiro_sede = get_post_meta( $order_id, 'ritiro_sede', true );
    

    这个问题现在可以通过第 1 步的调整自动解决


    所以要回答你的问题,你会得到:

    function my_custom_checkout_field_display_order_data_ritiro_sede( $order_id ) {
        // Get an instance of the WC_Order object
        $order = wc_get_order( $order_id );
        
        // Get meta
        $ritiro_sede = $order->get_meta('ritiro_sede');
        
        // Compare
        if ( $ritiro_sede == 1 ) {
            echo '<p><strong>Ritiro In sede: </strong> <span style="color:green;">SI</span></p>';
        } else {
            echo '<p><strong>Ritiro In sede: </strong> <span style="color:red;">NO</span></p>';
        }       
    }
    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 );
    

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 1970-01-01
      • 2018-03-12
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多