JunichiK
投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
JunichiK参加者
nglifeさん、ありがとうございます。
意外に簡単に出来たので助かりました。
難しく考えすぎていたのか、プラグインの管理画面はWordPressの管理画面のようにはいかないものだと思い込んでおりました。
感謝です。JunichiK参加者nanbu様、ご回答ありがとうございます。
助かりました。
admin_headフックのタイミングでうまくいきました。
ありがとうございました。JunichiK参加者私も取得出来るものだと思っていたのですが、$user_terms に WP_Error が返ってきているようで、
return $user_terms->get_error_message();
でエラーメッセージを確認しますと、「不正なタクソノミー分類です。」と返ってきております。JunichiK参加者nanbu様、お世話になります。
Welcartのユーザーは取得せずに(会員システムを使わずに)、WordPressのユーザーを使用しています。
register_taxonomyの第二引数にuserを指定することで、user-group というタクソノミーでWPユーザーをグループ分けしており、それを使用する必要があるからです。サンキューメール等のWelcartの自動送信メールに、WPユーザー名やグループ(term)などを表示したいのですが、$user->get(‘user_email’) や $user->get(‘display_name’) は取得出来ておりますので、WPのログイン状態にはなっていると思います。
ですが、なぜか $user_term->name は取得できないのです。- この返信は9年、 11ヶ月前にJunichiKが編集しました。
JunichiK参加者フィルターフック usces_filter_send_order_mail_bodyall で wp_get_object_terms()を取得したいのですが、取得できません。
タクソノミーが存在しないという WP_Error が返ってきます。
他のテンプレートでは正常に取得できているのですが、なぜでしょう?
functions.php のフィルターフックのコードは概ね下記のような感じです。add_filter( 'usces_filter_send_order_mail_bodyall', 'my_filter_send_order_mail_bodyall', 10, 2 ); function my_filter_send_order_mail_bodyall( $msg_body, $data ) { $user = wp_get_current_user(); $user_id = get_current_user_id(); $user_terms = wp_get_object_terms( $user_id, 'user-group' ); if( !empty( $user_terms ) ) { if( !is_wp_error( $user_terms ) ) { foreach( $user_terms as $user_term ) { } } } $msg_body = "\r\n\r\n\r\n【お支払内容】\r\n"; $msg_body .= usces_mail_line( 1, $data['order_email'] );//******************** $msg_body .= "メールアドレス:" .$user->get('user_email'). "\r\n"; $msg_body .= "お名前 :" .$user->get('display_name'). " 様\r\n"; $msg_body .= "ID :" .$user_id. "\r\n"; $msg_body .= "所属 :" .$user_term->name. "\r\n"; return $msg_body; }
ちなみに $msg_body 以下をコメントアウトして直接 return $user_term->name; としても取得できません。
WP_Error が返ってきていることは分かっています。何卒ご教示のほどよろしくお願いいたします。
JunichiK参加者上記分かりました。functions/function.phpでした。
JunichiK参加者お世話になります。
それらのフックはどのファイルにございますか?
JunichiK参加者DLSellerの説明を拝見しましたところ、
サービスを購入する場合はログインが必要となります。
と書いてあるのですが、ログインを省くことは可能なのでしょうか?
JunichiK参加者nanbu様、お世話になります。
会員システムを使用するかどうか「Welcart Shop -基本設定-」で変更できます。
これは存じておりますが、基本設定で会員システムのチェックを外しても、結局は都度、名前や住所等のお客様情報の入力が必要になりますよね?
それを省きたいのです。
お客様情報をスキップすることが可能なのでしょうか?よろしくお願いいたします。
JunichiK参加者yskysmr様、ご返信ありがとうございます。
当方のスキルが低いため、正直よく分かりません。
試しに下記のようにしてみましたら、不要な列の削除は出来ましたが、表の内容が反映されませんでした。add_filter( 'usces_filter_history_cart_row', 'my_filter_history_cart_row', 10 ,5 ); function my_filter_history_cart_row() { $args = func_get_args(); list($history_cart_row, $umhs, $cart_row, $i, $materials) = $args; $history_cart_row = '<tr> <td>' . ($i + 1) . '</td> <td>'; $cart_thumbnail = '<a href="' . get_permalink($post_id) . '">' . wp_get_attachment_image( $pictid, array(60, 60), true ) . '</a>'; $history_cart_row .= apply_filters('usces_filter_cart_thumbnail', $cart_thumbnail, $post_id, $pictid, $i, $cart_row); $history_cart_row .= '</td> <td class="aleft"><a href="' . get_permalink($post_id) . '">' . esc_html($cartItemName) . '<br />' . $optstr . '</a>' . apply_filters('usces_filter_history_item_name', NULL, $umhs, $cart_row, $i) . '</td> <td class="rightnum">' . usces_crform($skuPrice * $cart_row['quantity'], true, false, 'return') . '</td> </tr>'; $materials = compact( 'cart_thumbnail', 'post_id', 'pictid', 'cartItemName', 'optstr' ); return $history_cart_row; }
引数や変数の宣言を加えたりも試行錯誤してみましたが、うまくいきません。
ご教示のほどよろしくお願いいたします。JunichiK参加者追記です。
Welcartの会員ログインを無効に
というのは、お客様情報などの入力も不要だということです。
既にWordPressのほうでユーザー登録及びグルーピングをしている顧客相手ですので、そういった情報の入力や会員ログインを省きたいのです。よろしくお願いいたします。
JunichiK参加者yskysmr様、ありがとうございます。
スッキリいたしました。
これで作業を進められます。
感謝いたします。JunichiK参加者yskysmr様、ありがとうございます。
そうだとは思うのですが、私のスキル不足のため、なぜ反映しないのか分からないのです。
テーマのfunctions.phpに書いた上記の内容に間違いや怪しいところはございますか?
何かヒントだけでもいただければ幸いです。何卒よろしくお願いいたします。
JunichiK参加者yskysmr様、ご回答いただき、ありがとうございます。
DL Sellerの仕様について、よく分かりました。
ありがとうございました。JunichiK参加者おはようございます。
yskysmr様、ご回答ありがとうございます。もう1つ確認したいことがございます。
特定のお客様専用でダウンロード1回のみ(在庫1)の商品があります。
それで、お客様がダウンロードコンテンツを1度購入されると、その商品を非表示にしたいのですが、それには、WelcartもしくはWordPress側で別途カスタマイズが必要になるのでしょうか?現状目指しているのは、商品に購入可能なお客様のWPユーザーもしくはWelcart会員IDのカスタムフィールドを設け、そのお客様だけに商品を表示。
受注が確定した時に、フックをかけてカスタムフィールドを削除するという流れです。
ただ、この「受注が確定した時」のフックがわからないので、困っております。具体的な商品の内容はサービス販売で、既にそのサービスを行った後に、決済のみWelcartで行いたいのです。
ですので、現状では空の商品を購入するという形で決済を行ってもらおうと考えているのですが、上記のようなことがDL Seller導入によってスムーズに実現出来るのなら、領収書をダウンロードコンテンツとしてダウンロード購入してもらう形にしようかと考えております。以上、よろしくお願いいたします。
-
投稿者投稿