“ woocommerce_get_item_data”未显示在“收到订单”页面上

时间:2019-11-13 12:27:39

标签: php wordpress woocommerce

我为网上商店添加了一些cart_item_meta和order_item_meta,但是order_item_meta没有显示在收到订单的页面上。有人知道如何解决此问题吗?

这是我使用的代码。在数据库中,一切似乎都很好。在后端,我看到了数据。但不在收到订单的页面上。

<?php
/**
 * Display 'huisnummer' in the cart.
 *
 * @param array $item_data
 * @param array $cart_item
 *
 * @return array
 */

add_action('woocommerce_checkout_create_order_line_item', 'save_custom_order_item_meta_data', 10, 4 );
function save_custom_order_item_meta_data( $item, $cart_item_key, $values, $order ) {

    if( isset( $values['huisnummer'] ) ) {
       $item->add_meta_data( 'huisnummer', $values['huisnummer'] );
    }
    $i = 0;
    foreach($cart_item['huisnummer'] as $serie) {

        $i++;
        $item->update_meta_data( 'huisnummer' . $i, $serie['huisnummer'] .' t/m '. $serie['toevoeging'] );

    }
    if( isset( $values['huisnummer-serie'] ) ) {
        $item->add_meta_data( 'huisnummer-serie', $values['huisnummer-serie'] );
     }
    $i = 0;
    foreach($cart_item['huisnummer-serie'] as $serie) {
            $i++;
            $item->update_meta_data( 'huisnummer-serie' . $i, $serie['eerste-huisnummer'] .' t/m '. $serie['laatste-huisnummer'] );
    }
}


add_action( 'woocommerce_after_order_itemmeta', 'order_meta_customized_display',10, 3 );


function order_meta_customized_display( $item_id, $item, $product ){
 $all_meta_data= get_metadata( 'order_item', $item_id, "", "");


 if (!empty($all_meta_data['huisnummer'])) {
    $huisnummer = $all_meta_data;
    $i = 1;
    foreach ($huisnummer['huisnummer'] as $key => $value) {
        $arr = unserialize($value);
        foreach ($arr as $key => $value) {
            echo '<table class="display_meta"><tbody>';
            echo '<tr><th>Bord ' . $i .':</th><td>';
            echo 'Huisnummer: '. $value['huisnummer'] . '<br/>';
            echo 'Toevoeging: '. $value['toevoeging'] . '<br/>';
            echo '</td></tr></tbody></table>';
            $i++;
        }
    }

    }


 if (!empty($all_meta_data['huisnummer-serie'])) {
    $huisnummer = $all_meta_data;
    $i = 1;
    foreach ($huisnummer['huisnummer-serie'] as $key => $value) {
        $arr = unserialize($value);
        foreach ($arr as $key => $value) {
            echo '<table class="display_meta"><tbody>';
            echo '<tr><th>Serie ' . $i .':</th><td>';
            echo 'Eerste huisnummer: '. $value['eerste-huisnummer'] . '<br/>';
            echo 'Laatste huisnummer: '. $value['laatste-huisnummer'] . '<br/>';
            echo '</td></tr></tbody></table>';
            $i++;
        }
    }

    }
}

function display_huisnummer_cart( $item_data, $cart_item ) {

    if ( !empty( $cart_item['huisnummer'] ) ) {

        $i = 0;
        foreach($cart_item['huisnummer'] as $serie) {
            $i++;
            $item_data[] = array(
                'key'     => __( 'Huisnumer ' . $i, 'wpiad' ),
                'value'   => $serie['huisnummer'] .' '. $serie['toevoeging'],
            );
        }
    }    

    if ( !empty( $cart_item['huisnummer-serie'] ) ) {
        $i = 0;
        foreach($cart_item['huisnummer-serie'] as $serie) {
                $i++;
                $item_data[] = array(
                    'key'     => __( 'Huisnumer serie ' . $i, 'wpiad' ),
                    'value'   => $serie['eerste-huisnummer'] .' t/m '. $serie['laatste-huisnummer'],
                );
        }
    }    

    return $item_data;
}

add_filter( 'woocommerce_get_item_data', 'display_huisnummer_cart', 10, 2 );

0 个答案:

没有答案