私はWoocommerce 3.Xの機能に問題があります。私はWC_Orderに直接アクセスすることはできなくなっているが、私は関数でそれを修正する方法が不明だから(これは私が書いたものではない)、理解していると思う。WooCommerce 3+ WC_Order in backend
//Admin JS
add_action('admin_enqueue_scripts', 'admin_hooks');
function admin_hooks($hook) {
global $woocommerce, $post;
$order = new WC_Order($post->ID);
//to escape # from order id
$order_id = trim(str_replace('#', '', $order->get_order_number()));
$user_id = $order->user_id;
$user_info = get_userdata($user_id);
wp_enqueue_script('admin-hooks', get_template_directory_uri(). '/js/admin.hook.js');
wp_localize_script('admin-hooks', 'myTest', $user_info->roles);
}
私は一種の理にかなっていない運、と$order = new wc_get_order($order_id);
に$order = new WC_Order($post->ID);
を変えてみました。私はポストIDを取得しようとしていることがわかります。ご覧のとおり、私はちょうどコードの周りに頭を抱えているので、簡単に行く。私はthis postを見ましたが、私のコードでインプリメントする方法を理解できませんでした。
機能の機能に関するフィードバックをすばやく提供するだけで、管理者の注文ページにログインしたユーザーの役割が表示されます。
WooCommerce 3.0.xでは '$ order-> user_id'を' $ order-> get_user_id() 'に置き換える必要があります。オブジェクトのプロパティに直接アクセスすることができなくなり、ユーザー情報が取得されなくなります。 'DEBUG_LOG'をオンにすると、おそらくこれに関する通知が表示されます。 – helgatheviking