- ベストアンサー
WordPressのWooCommerceカスタム
https://okwave.jp/qa/q10255240.html ↑の質問にて、 AIエージェントのあいサンにご回答を戴きました。 以下が、その際の回答でした。 ----------------------------------------------------------------------- ```php add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { // 名前のフィールドを統合 $fields['billing']['billing_first_name'] = array( 'label' => '名前', 'placeholder' => '名前を入力してください', 'required' => true, 'class' => array('form-row-wide'), 'clear' => true ); // 姓のフィールドを削除 unset($fields['billing']['billing_last_name']); // 会社名のフィールドを追加 $fields['billing']['billing_company'] = array( 'label' => '会社名', 'placeholder' => '会社名を入力してください', 'required' => false, 'class' => array('form-row-wide'), 'clear' => true ); // 国のフィールドを削除 unset($fields['billing']['billing_country']); // 電話番号を必須にする $fields['billing']['billing_phone']['required'] = true; return $fields; } ``` -------------------------------------------------------------------- どこまでがプログラムなのかが分かりづらいと思いましたので、 「-」で仕切りを作りました。 さて、お答えいただいたご回答を私が作っているページの、 functions.phpに記載して保存しようとしたところ、 functions.php ファイルの24行目でエラーが発生したため、PHP コードの変更が適用されませんでした。修正して再度保存してください。 syntax error, unexpected '`' という表示が出て先に進む事ができませんでした。 私のページで言うところの24行目が、 プログラムの第一行目、 ```php だった訳ですが、 これはなぜエラーになってしまったのでしょうか? せっかく良いお答えを戴き、 そしてもう解決が見えていそうなこの段階で、 ほんの少し援助をいただければ結末が見えそうに思えてなりません。 申し訳ありませんが、 エラーにならないプログラムを教えていただけないでしょうか? この質問にご回答をいただきました。 ---------------------------------------------------- このソースをそのまま使う場合は、最初の ```php を <?php に、最後の ``` を ?> に変更して使います。 しかしながら、質問者さんはすでにある自分のプログラムに追加したようですので、その場合は、```で挟まれた間の部分を使うようにしてください。 (```の行は含めないでください) ------------------------------------------------- このご回答の通り、 <?php と ?> の部分を削除して進むと、 ちゃんと保存ができたのですが、 その後、Wordpressより「サイトで技術的な問題が発生しました」のメールが来ました。 幸い、エディター画面を出したままにしていたので、すぐさま新規入力分を削除して対応できたのですが、 結果的に、お客様入力画面をカスタマイズできませんでしたので、 問題は解決しておりません。 もうあと一歩だと思うので、 どなたかお力添えいただけないでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
teratailで聞いた方が確実と思われます。 https://teratail.com/ ちなみにWooCommerceの質問は↓にもあったので、類似するものがあれば、それらを参照してください。 https://teratail.com/search?q=WooCommerce 元住人として注意ですが、嫌な人は多く、礼儀にはうるさいです。
その他の回答 (7)
- type0(@type0)
- ベストアンサー率56% (344/611)
まず、エラーの内容と処置方法を知らないと、どうしようもないと思います。 E_PARSEで、Google検索すると、 PHPのエラー表示設定について https://qiita.com/shotets/items/3c95aef631b2c5eadae5 で調べられますし、 syntax error,unexpectedで、Google検索すると、 https://irodori-design-web.com/blog/blog-2081/ で、原因と処置方法を調べられると思います。 気になるのは、 >そしてその// END ENQUEUE PARENT ACTIONの前を改行して > >----------------------------------------------------- ><?php とありますが、function.php内に<?phpが2つあるってことですかね?如何せん、良く分かっていません。 そして、質問者さんは「もう少し」って思ってるかもですが、道のりはかなり長いと思います。 有償ですが、自分で何とかしたいと思うなら、直接、技術者とやり取りしながら、教えてもらう方がベストだと思いますよ。 https://menta.work/ そうではなく、とにかく完成させたいなら、ココナラやクラウドワークスで外注した方が結果的には確実で安上がりと思いますので、ご検討ください。 もしくは、No4さんがサポートしてくれる可能性もあるかもしれませんが、あまり期待はしない方が良さそうです。
お礼
私は元々プログラマでもなければエンジニアでもない、 仰る通り、よく分からない者がよく分からないままやっています。 なので、エラーの内容もよく分からないまま進めてしまった。 明らかに勉強不足は否めません。 しかし、まぁ、それでも何とかここまでやって来たので、 勉強の為にもこのまま自力で続けていくつもりですし、 そうですね、 もう少しだと思ってるだけで、まだまだ先は遠いのかもしれません。 でも、 正直、お金をかける程のサイトではないのです。 他者に依頼すれば結果的に安く上がるのかもしれませんが、 結果、また何か訳の分からない事が起きた時、またよく分からないまま他者に委ねるようになる。 それは何の成長も無いと思います。 type0(自作自演?)(@type0)様 ここまでお付き合いくださり、誠にありがとうございました。 少しだけお叱りをいただき、プログラムについての考えを改める事ができました。 本当にありがとうございます。 あとは、何とか自分のチカラでやってみます。 サポートがいただけるとありがたいな、とは思っていたのですが、 まぁ、元々は自分一人でやってた事なので、 また元に戻るだけです。コツコツやります。 回答、ありがとうございました。
- type0(@type0)
- ベストアンサー率56% (344/611)
>「エラータイプE_PARSEが、 サイトの保存されているURL/function.php ファイル24行目で発生しました。 エラーメッセージ:syntax error,unexpected'」 というものでした。直接今回のカスタマイズとは関係はなさそうで、Wordpress自体が危険と判断して警告を出したのだと思います。 との事ですが、function.phpの内容が分からないと、何とも言えないです。ファイル24行目で発生しました。とある事からも、その24行目を見ないと、どうすべきかが分かりません。
お礼
元々、のfunction.phpが ------------------------------------ <?php // Exit if accessed directly if ( !defined( 'ABSPATH' ) ) exit; // BEGIN ENQUEUE PARENT ACTION // AUTO GENERATED - Do not modify or remove comment markers above or below: if ( !function_exists( 'chld_thm_cfg_locale_css' ) ): function chld_thm_cfg_locale_css( $uri ){ if ( empty( $uri ) && is_rtl() && file_exists( get_template_directory() . '/rtl.css' ) ) $uri = get_template_directory_uri() . '/rtl.css'; return $uri; } endif; add_filter( 'locale_stylesheet_uri', 'chld_thm_cfg_locale_css' ); if ( !function_exists( 'chld_thm_cfg_parent_css' ) ): function chld_thm_cfg_parent_css() { wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array( 'twentythirteen-fonts','genericons' ) ); } endif; add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 ); // END ENQUEUE PARENT ACTION ------------------------------------------- です。 そしてその// END ENQUEUE PARENT ACTIONの前を改行して ----------------------------------------------------- <?php add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { // 名前のフィールドを統合 $fields['billing']['billing_first_name'] = array( 'label' => '名前', 'placeholder' => '名前を入力してください', 'required' => true, 'class' => array('form-row-wide'), 'clear' => true ); // 姓のフィールドを削除 unset($fields['billing']['billing_last_name']); // 会社名のフィールドを追加 $fields['billing']['billing_company'] = array( 'label' => '会社名', 'placeholder' => '会社名を入力してください', 'required' => false, 'class' => array('form-row-wide'), 'clear' => true ); // 国のフィールドを削除 unset($fields['billing']['billing_country']); // 電話番号を必須にする $fields['billing']['billing_phone']['required'] = true; return $fields; } ?> ---------------------------------------------- 今回ずっとやっているWooCommerceカスタム用のコードですね、これを 書いて、保存しようとしたところ保存できなかったので、 <?php と ?> を消して保存しました。 実はあの時のまま残っていなくて、 function.phpは既に消して、書き加えたりまた消したり、を繰り返しているので正直よく覚えてないのですが、 // Exit if accessed directly if ( !defined( 'ABSPATH' ) ) exit; ここの部分が24行目になるのではないか、と思います。 他にも何かありましたらば、お答えいたしますので、どうぞよろしくお願いします。
補足
すみません、コピペを間違えています。 add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); この部分が24行目になるのだと思います。 失礼しました。
- type0(@type0)
- ベストアンサー率56% (344/611)
>もしよければ、このまま引き続きお付き合いいただけると嬉しいです。 それはこちらこそ失礼しました。 たまに質問風のプログラム製作依頼や無礼な依頼がIT系では多いので、少し警戒していました。何よりもクライアントさんやここの回答者にも失礼だと思うからです。 分かる範囲で片手間で良いのであれば、アドバイス出来ますが、如何せん、動く環境が無いので、プログラムとエラー結果でしか、ああしろ、こうしろとしか言えません。 ↑となるので、プログラムは省略するのではなく、全てのコードを記載いただく、エラーの情報も全て出してくれないと、何とも言えないっといったところです。 ↑をご理解のうえで、出せる情報を全てお出しください。 当然ながら、会社や個人の機密情報は出しては駄目です。
お礼
あぁ、良かった、誤解が解けたみたいでホッとしています。 本当に、どこかの案件とかいうのではなくて、自分の会社のホームページで困っている事を質問していますので、ご理解くださいませ。 いえいえいえ、本当に、手間だとか面倒臭いとか思われたならば、そこで回答をやめれば良いだけですので、もしも手を差し伸べてくださるのでしたらば、できる範囲で結構です、教えていただけるとこちらも勉強になりますのでありがたいです。どうぞご指導お願いいたします。 プログラムというのは・・・一切書いてないです。 以前は、HTMLで書いた事があるのですが、今はWordpressが優れているので、それをそのまま使っています。 使用しているテーマは、無料の「Twenty Thirteen」です。 既存のWordpressを使って、固定ページを作って表示しているのみのサイトです。 そこに、以前はWP-OliveCartというプラグインを入れて、カートシステムを運用していたのですが、この度それが正常に動かなくなり、違うモノで何か良いのはないか、といろいろと探っていると、 WooCommerceというプラグインを見つけて、商品の登録なども行ってテストをしてみたところ、 あれ?これは、お客様が入れる必要のない「国」とかいう項目があるし、電話番号も必須にならないし、カスタマイズが必要だぞ、といろいろなサイトを見て、プラグインを入れたり、functions.phpに追加で書いては消してというのを繰り返して・・・全く進展が無いので、ここはもうどこかの誰かの手を借りてでも完成させる! と思って質問をした次第です。 ですから、ご覧いただいているように、質問を3個も立て続けに書いて何とか回答をいただこうと必死になっているところです。 エラーとしてメールが飛んで来た旨を書いておりますが、その時のエラーの内容は 「エラータイプE_PARSEが、 サイトの保存されているURL/function.php ファイル24行目で発生しました。 エラーメッセージ:syntax error,unexpected'」 というものでした。直接今回のカスタマイズとは関係はなさそうで、Wordpress自体が危険と判断して警告を出したのだと思います。 以上で良いでしょうか? プログラム自体を今は一切書いてないので、 書ける内容としてはこれで全部だと思います。 その他何か情報が必要であれば書いてくだされば返信させていただきます。 どうぞよろしくお願いします。 回答、ありがとうございました。
- type0(@type0)
- ベストアンサー率56% (344/611)
一点、確認ですが、ココナラやクラウドワークスで受注した案件をここで質問なされたりしてませんよね? https://coconala.com/services/1610087?ref_kind=search&ref_no=2&service_order=2&service_order_with_pr=2&service_order_only_pr=null を見てると、 ■WooCommerce 関連につきましては 動作不良や不具合が頻発しますので、承っておりません。ご了承ください。 とあるように、ニッチなオープンソースで、使い勝手が良くなさそうに見えたので、おそらくは、高値じゃないと、引き受ける人が居ないけども、素人が安請け合いするケースもたまに見受けられます。 WooCommerceの不具合を修正します https://coconala.com/services/2205080?ref_kind=search&ref_no=1&service_order=1&service_order_with_pr=1&service_order_only_pr=null だと、結構、高額でしたしね。。。 プログラムを学ぼうっていう風にはあまり見えなかったので、そこが気になってます。学ぶつもりでないのであれば、残念ながら、私は質問には答えられません。 No4さんのレベル的にも、学校か独学、仕事などで、技術を学ばれたのだと思いますが、私達は無償の労働力ではないので、利用目的はお控えください。
お礼
何度も回答をくださり、 本当にありがとうございます。 その中で、私の対応が浅はかで、プログラムを学ぼうという意識が無いように伝わってしまっていたのでしたらば、それは私の責任ですので、大変申し訳ありませんでした。 私は田舎住まいの年配なもので、 ココナラとかクラウドワークスとかいうモノには無縁の生活をしており、今回、その案件ではないのか?という危惧を書かれた事で私はそういうのを始めて知り検索した次第です。 なので、そういった類では全く無いです。誓ってありません。 元々の質問に書いたように、 私は自社のホームページを、何も分からないなりに独学で勉強しながら作っており、今回、今まで頼っていた有料のカートシステムが使用できなくなった為、 いろいろ探して試して、WooCommerceというプラグインが無料だし使いやすそうだし、これに決めよう、 ただ・・・カスタマー入力画面がこのオリジナルのままだと弊社の場合困ってしまうな、と思ってカスタマイズをしております。 私も困ったら、いろいろなサイトの記事を読んだり、質問サイトで似た質問を読んだり、それで物凄く為になるし、 解決もしたりして、ありがたいなぁ、って思う事もしばしばなので、 私の書いたこの質問も、いずれ誰かの役に立てると嬉しいな、とは思いますが、 今現在は、私個人の為、個人というか、弊社の為にできない事を改善しようと努力している次第です。 安易に答えだけ聞いて、入力して、はいダメでした、というのを書いているように見受けられると思いますが、それは私の力不足、文章力のなさ、が問題なのだと今回思い知りました。 回答No.4サンのところにも、書いたのですが、 もしよければ、このまま引き続きお付き合いいただけると嬉しいです。 回答ありがとうございました。
- luka3
- ベストアンサー率72% (424/583)
Wordpressのカスタマイズは、各テーマのフォルダに入っている「functions.php」に記述します。 functions.php が存在しない、もしくは中が空っぽの場合は <?php ~ ?> で囲むが、質問者さんの環境は、すでに functions.php が存在し、24行目にコピペしたと読み取れるため、``` で囲まれた間を貼り付けるようにアドバイスしました。 https://okwave.jp/qa/q10256962.html 質問者さんは、おそらく syntax error の意味がわからないと思われ、教えられたコードをそのまま貼り付けて「希望していたような動作はしなかった」だけでは、追加のアドバイスも難しいですね。 せめて、「表示は何も変わらなかった」のか「表示は変わったが追加した項目名が保存されない」のか。 表示が変わらない場合、「Checkout Field Editor」の効果も無かったということから、もしかしたら何かしら表示の変更をブロックする仕組みがあるのかもしれません。 項目の追加については、 https://syuntech.net/wordpress/woocommerce/woocommerce_7/ こちらのカスタマイズ例を見るに、購入画面に項目を追加した場合は『 woocommerce_checkout_update_order_meta 』の処理も必要になるのではないでしょうか。 そういう意味ではAIの回答も中途半端だったのかな、と思います。 >Wordpressより「サイトで技術的な問題が発生しました」のメールが来ました とのことですが、 https://www.vektor-inc.co.jp/post/wordpress-recovery-mode/ このような内容であれば、エラーメッセージは重要な手がかりとなりますので、不都合のない範囲で(秘匿にしたい部分は消して)公開されるといいです。
お礼
私は、Wordpressの管理画面より、 外観→テーマファイルエディタ→functions.php そのfunctions.phpに追記して保存するという方法を行っています。 確かに仰る通り、 syntax errorの意味を理解しておりません。 せかっくのアドバイスを無駄にしてしまったのは、私自身の責任でした。今回それを教えていただけて、本当にありがたいと思いました。 教えていただいたコードを貼り付けて保存しても、 表示は何も変わりませんでした。 私が調べた限りでは、「Checkout Field Editor」の効果が無い人の場合は、WooCommerce日本最適化無料プラグインと当たるのか、ラベルの変更はできません、という記事を読みました。 https://kimitaka.enari.jp/2022/09/05/woocommerace_checkout_form_label_custom/ この記事の方は、配置やテキストは変更可能と書かれていますが、 私の環境ではそれさえも変更してくれませんでした。 「テーマ」のファイルが何か関係しているのかもしれません。 教えていただいたURL先の記事、いいですね。 ちょっと勉強不足な面も多いので、少しづつ調べて改善していこうと思います。 サイトからのメールの件ですが、 エラー詳細を書きます。 「エラータイプE_PARSEが、 サイトの保存されているURL/function.php ファイル24行目で発生しました。 エラーメッセージ:syntax error,unexpected'」 です。 特に重要ではないのかと勝手に思った為書きませんでした。 大変失礼しました、情報は全部出すべきですね、申し訳ありません。 もしよろしければ、また引き続きお付き合いいただけるとありがたいですが、 自分でももっとプログラムを勉強して改善しようと思います。 回答、ありがとうございました。
- type0(@type0)
- ベストアンサー率56% (344/611)
<?php と ?> の部分を削除して進むと、 ちゃんと保存ができたのですが、 ↑が問題だと思いますよ。 <?php が無いと、サーバーがPHPプログラムと認識しないはずなので、それでエラーになるんでしょう。保存出来たからOKっていうのが良く分かりません。 閉じタグは無くても、大丈夫です。 https://qiita.com/saoyagi2/items/286827c44a6673f7f978 書き方などはここら辺を参考にすればいいんじゃないでしょうか。 https://kinsta.com/jp/blog/wordpress-functions-php/ おそらくは、素人っぽいと、teratailでは嫌われます。 やり取りが長くなる事が想定され、めんどくさいからです。 プログラムをいっぺんに書いて実行するのではなく、 <?php add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); だけ書いて保存し、エラーが出ないか、エラー出なければ、 function custom_override_checkout_fields( $fields ) { // 名前のフィールドを統合 $fields['billing']['billing_first_name'] = array( 'label' => '名前', 'placeholder' => '名前を入力してください', 'required' => true, 'class' => array('form-row-wide'), 'clear' => true ); return $fields; } を書いて、順に継ぎ足していって確認するようにしないと、何処でエラー出てるかも良く分からんと思いますね。素人がプログラムをいっぺんに書いて、実行するのではなく、少しづつです。 別に内容まで理解しろとは言いませんが、回答者も時間を取って、回答をしています。これを頭に置かないと、途中で放り出されたりもします。また、礼節をわきまえる事も大切です。 ※出来てない人は多いですが、、、
お礼
保存できた、という事はプログラムが間違えてない、という事なのだと勝手に思ってしまいました。 そういう事なのですね、単にプログラムとして認識しなかったので保存できた、という事なのですね。 勉強になりました。 閉じタグを書かずに、 教えていただいた通り、ちょっとづつちょっとづつコピーしては貼り付け、保存を進めていき、 閉じタグ以外の部分を記載して保存すればエラーにならない事が分かりました。 しかし、肝心の結果としては、 何も変わりませんでした。 残念です・・・ teratailの事も追加で教えてくださり、ありがとうございます。 なるほど・・・ 仰る通り、多分、質問は見ていただけている感じですが、 面倒臭そうな人だな、と思われたのだと思います。 長いやりとりは嫌われるのですね。 肝に銘じます。 回答、ありがとうございました。
- type0(@type0)
- ベストアンサー率56% (344/611)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12265260057 こんな感じです。 回答者の気持ちを考える事も必要であります。 ここが単に優しい人が多くて、ゆるいだけとも言えます。
お礼
URL先、全て拝見いたしました。 なるほどです。 ま、コチラのサイトも、変な質問した際は叩かれますので、 そんな大差ないのかな、と思っています。 とりあえず、アチラにも質問したので、回答してくださる方がいらっしゃる事を祈るのみです。 回答、ありがとうございました。
補足
teratailでも無理みたいですね。 回答が付きません。 質問の書き方も悪いのだろうとは思いますが・・・
お礼
このサイトは初めて知りました。 教えていただいたサイトで同じ質問を探してみたのですが、無さそうですね。 元住人として嫌な人は多く、という事ですが、 回答を書いて下さる方の性格が良くない、という事を仰っておられるのでしょうか? それとも、礼儀にうるさい人が多いので、このサイトを使うのを嫌がる人が多い、という事でしょうか? 回答、ありがとうございました。
補足
使った事が無かったので、よくワカリマセンが、 事実困っているので、teratailに質問させていただきました。 サイトを教えてくださり、ありがとうございました。