前提・実現したいこと
お世話になります。
WordPress+プラグイン「WooCommerce」で簡単な会員限定の商品交換ページを作成しています。
注文ステータス変更などの為に、WordPressの管理画面から注文を更新した時、同時にユーザ情報も更新されるのですが、それを
・更新しないようにする
・ユーザ情報の項目を増やす(表示名(display_name))
以上いずれかの対応をしたいと思っています。
発生している問題・エラーメッセージ
ユーザ情報にあらかじめ登録されている表示名(display_name)を変更したくない(更新された場合は姓+名で上書きされてしまう)というのが一番の理由です。
また、checkout時は、以下をfunction.phpに記述し更新しないようにしています。
add_filter('woocommerce_checkout_update_customer_data', '__return_false' );
詳しくない為、管理画面での処理の流れやフックがわからず、調べても同様の案件が出てこないので悩んでいます…
お力添えいただけたらと思います。何卒、宜しくお願いします。
補足情報(FW/ツールのバージョンなど)
WordPress バージョン:4.9.7
WooCommerceバージョン:3.4.3
暫定対応
18/7/30追記
注文更新時にユーザ情報が更新されると思っていましたが、
注文ステータスを「完了」にした時のみユーザ情報の表示名(display_name)が変更されているようです。
以下のフックを使用し、ニックネームを表示名に代入という無理矢理な対応をしていますが、スマートじゃないと思うので何か方法があればご指導宜しくお願いいたします。
add_action( 'woocommerce_order_status_completed', 'custom_wc_order_status_completed', 10, 1); function custom_wc_order_status_completed( $order_id ) { $order = new WC_Order($order_id); $customer_id = $order->user_id; $customer_data = get_userdata( $customer_id ); $args = array( 'ID' => $customer_id, 'display_name' => $customer_data->nickname ); wp_update_user( $args ); }
あなたの回答
tips
プレビュー