• ベストアンサー

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 だった訳ですが、 これはなぜエラーになってしまったのでしょうか? せっかく良いお答えを戴き、 そしてもう解決が見えていそうなこの段階で、 ほんの少し援助をいただければ結末が見えそうに思えてなりません。 申し訳ありませんが、 エラーにならないプログラムを教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • luka3
  • ベストアンサー率74% (314/420)
回答No.1

このソースをそのまま使う場合は、最初の ```php を <?php に、最後の ``` を ?> に変更して使います。 しかしながら、質問者さんはすでにある自分のプログラムに追加したようですので、その場合は、```で挟まれた間の部分を使うようにしてください。 (```の行は含めないでください) エラーになったのは、意味不明な ` が出てきたからです。 バッククォート( ` )自体は、実行演算子としての役割がありますが、その文法に当てはまらないためエラーになったのだと思います。

orange-house
質問者

お礼

そういう事でしたか! と思って、 最初を <?php に、最後を ?> にして保存してみました。 残念ながら、 wp-content/themes/twentythirteen-child/functions.php ファイルの24行目でエラーが発生したため、PHP コードの変更が適用されませんでした。修正して再度保存してください。 syntax error, unexpected '<', expecting end of file という表示が出て進まなかったです。 もう一つの回答を戴いていたので、 <?php と ?> を削除して・・・ つまり2行分短くして保存したところ、ちゃんと保存できて先に進めました。 ・・・ただ・・・元々の質問の方で希望していたような事は起きませんでした。ショックです。 回答、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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より「サイトで技術的な問題が発生しました」のメールが来ました。 幸い、エディター画面を出したままにしていたので、すぐさま新規入力分を削除して対応できたのですが、 結果的に、お客様入力画面をカスタマイズできませんでしたので、 問題は解決しておりません。 もうあと一歩だと思うので、 どなたかお力添えいただけないでしょうか?

  • WooCommerceで支払いフォームの電話必須に

    WordpressのカートシステムプラグインWooCommerceで 支払いページの入力フォームのラベルをカスタムするのに、 Checkout Fields Manager for WooCommerceという無料プラグインがありますが、それが、 日本語最適化無料プログラムとバッティングするのか、 上手く働きません、という記事を読みました。 事実、私もそこでつまづいており、 支払いフォームのお客様の電話番号を「オプション」から「必須」に換えたいのですが、変更できません。 項目として、電話番号のみ必須になってくれれば今の所問題ないのですが、その方法を教えてくださいませんか? ちなみに、ChatGPTの方で教えて戴いた方法を記載しておきますが、 ↓以下が生成AIの回答でした。 まず、functions.phpファイルを編集するか、サイト専用のカスタムプラグインを作成します。 php // functions.php ファイルか、カスタムプラグイン内で以下のコードを追加 // チェックアウトページのフックを利用してフォームをカスタマイズ add_filter('woocommerce_checkout_fields', 'customize_checkout_fields'); function customize_checkout_fields($fields) { // 電話番号の部分を必須に設定 $fields['billing']['billing_phone']['required'] = true; return $fields; } このコードでは、woocommerce_checkout_fields フィルターを使用して、チェックアウトページのフォームをカスタマイズしています。billing_phone フィールドの required プロパティを true に設定することで、電話番号の入力を必須に変更します。 ↑以上、functions.phpにコピーして貼り付けたのですが、 上手く動きませんでした。

  • WordPressカスタムフィールド非表示

    Advanced Custom Fieldsの設定について教えてください。 プロフィール出力の為のカスタムフィールドをつくりました。 カスタム投稿 LP だけに表示させたいです。 確かにLPだけに表示されるのですが、 他の固定ページ、投稿ページなどにも表示されてしまいます。 全文は出ないで延々ぐるぐる回っている状態です。 他のページには項目自体表示させないようにするにはどうすればいいですか? if(function_exists("register_field_group")) { register_field_group(array ( 'id' => 'acf_%e3%83%97%e3%83%ad%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab', 'title' => 'プロフィール', 'fields' => array ( array ( 'key' => 'field_59cc5c6d61a1d', 'label' => '<b>タイトル</b>', 'name' => 'profile', 'type' => 'text', 'instructions' => '<br />LPに表示するプロフィール情報についてです。タイトル、プロフィール、画像を登録してください。', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'formatting' => 'html', 'maxlength' => '', ), array ( 'key' => 'field_59cc5c8b61a1e', 'label' => '<b>プロフィール一覧</b>', 'name' => 'profileitiran', 'type' => 'textarea', 'instructions' => '<br />プロフィールをお書きください。', 'default_value' => '', 'placeholder' => '', 'maxlength' => '', 'rows' => '', 'formatting' => 'br', ), array ( 'key' => 'field_59cc5c9f61a1f', 'label' => '<b>画像</b>', 'name' => 'photo', 'type' => 'image', 'instructions' => '<br />写真を登録してください。', 'save_format' => 'id', 'preview_size' => 'thumbnail', 'library' => 'all', ), ), 'location' => array ( array ( array ( 'param' => 'post_type', 'operator' => '==', 'value' => 'lp', 'order_no' => 0, 'group_no' => 0, ), ), ), 'options' => array ( 'position' => 'normal', 'layout' => 'no_box', 'hide_on_screen' => array ( 0 => 'excerpt', 1 => 'discussion', 2 => 'comments', 3 => 'revisions', 4 => 'slug', 5 => 'author', 6 => 'send-trackbacks', ), ), 'menu_order' => 0, )); }

    • ベストアンサー
    • PHP
  • WordPressのWooCommerceカスタム

    WordPressでホームページを作成しています。 プラグインのWooCommerceを使って、カートシステムを作ったのですが、その決済ページの項目が思うようになりません。 プラグインの「Checkout Field Editor」を使用しても何も変わりません。 困っているので、力を貸していただけると助かります。 決済ページのお客様の情報入力が、 デフォルトでは 名[    ] 姓[ ] 住所[ ] アパート[ ] 国[ ] 市町村[ ] 県[ ] 郵便番号[ ] 電話[ ] となっているのですが、 名前[ ] 住所[ ] 会社名[ ] 市町村[ ] 県[ ] 郵便番号[ ] 電話[ ] にカスタマイズしたいです。 つまり、 姓と名、別々の項目になっているのを一つにし、 アパート名の所を会社名にして、 国の項目を削除、 そしてできる事ならば、必須にならない電話番号を必須入力に変えたいです。 というのをいろいろな方法で自分としては努力したつもりなのですが、 変わらないので、変更の仕方をもしよければ教えて戴けませんか? 検索した限りでは、 他にも同じ状態で困っている人がいらっしゃるみたいなので、 どうか詳しい方、アドバイスでも結構ですお力添えいただけると嬉しいです。

  • 【PHP】チェックボックスの必須チェック

    初歩的な質問ですみません。 現在、PHPで問い合わせフォームを作成しており、チェックボックスが選択されていない場合に、エラーを返す処理を行いたいです。 通常のテキストフィールドの場合は、下記の文言でエラー処理が行われるのですが、 チェックボックスが選択されているかを見るにはどうすればよいかご教示いただけないでしょうか。 ーーーーーーーーーーーーーーーー ■フォーム側 {if:$required.お名前} <p>エラー文</p> {/if:$required.お名前} ■php // 入力必須チェック if (isset($_POST['required'])) { foreach ($_POST['required'] as $v) { $tmpl->set("required.$v", false); if (empty($_POST[$v])) { $tmpl->set("required.$v", h($v . ERROR_REQUIRED)); $global_error[] = h($v . ERROR_REQUIRED); $global_error_flag = true; } } } ーーーーーーーーーーーーーーーー

    • ベストアンサー
    • PHP
  • wordpressで投稿記事を3パターン表示したい

    投稿記事を3ファイルに分けて表示したいのですが、うまくいかず全てpage.phpとして表示されます。振り分けることができないのですが、アドバイスよろしくお願いします。 前提として page.php page-secound.php page-third.phpの3ファイルがあり固定ページのテンプレートにしている。 <?php /* Template Name: 画像2タイトル1 Template Post Type: page */ ?> <?php /* Template Name: 画像3タイトル1 Template Post Type: page */ ?> 以下のカスタムフィールド名を各記事に割り振っております。 single_rss_feed1 duuble_rss_feed 2 triple_rss_feed 3 ※1つ目の方法 <!--index.phpの文頭に書くコード--!> <?php if(get_post_meta($post->ID,'single_rss_feed1',true) == 'A'): ?> <?php include(('main-first.php') == 'A'); ?> <?php elseif (get_post_meta($post->ID,'duuble_rss_feed2',true) == 'B'): ?> <?php include(('page-secound.php') == 'B'); ?> <?php elseif (get_post_meta($post->ID,'triple_rss_feed3',true) == 'C'): ?> <?php include(('page-third.php') == 'C'); ?> <?php else: ?> <?php endif; ?> _______________________________ ※2つ目の方法 <!--functions.phpに書くコード--!> function custom_template_include($template) { global $post; if (!is_page()) return $template; if (get_post_meta($post->ID, ' duuble_rss_feed 2')) $new_templete = locate_template(array('sub-secound.php')); if (get_post_meta($post->ID, ' triple_rss_feed 3')) $new_template = locate_template( array( 'sub-third.php' )); if (!empty($new_template)) return $new_template; return $new_template; }

    • ベストアンサー
    • PHP
  • MySQLからフィールド名のリストを取り出し、一部のフィールド名を除外したい場合

    PHP + MySQLにて テーブルからフィールド名だけを取得し、さらに一部のフィールド名を除外したいです。 レコードじゃないのでis not構文は使えませんでした。 何かいい方法があれば教えてください。 $sql = "select * from table"; //tableテーブルからフィールド名を取り出し $rs = mysql_query($sql); $fields = mysql_num_fields($rs); $column = array(); for ( $i=0; $i<$fields; $i++ ) { $column[$i] = mysql_field_name($rs, $i); }

    • ベストアンサー
    • MySQL
  • メソッドの処理の意味

    PHP Version 5.3.1を使用しています。 Zend Frameworkというフレームワークを使用しているのですが、 http://manual.zfdes.com/ja/zend.db.profiler.html http://ideone.com/JekM0d ┬ Zend │└ Db │ ├ Profiler │ │└ Query.php Query.phpというファイルのクラスZend_Db_Profiler_Query内のbindParamsメソッド /** * @param array $param * @return void */ public function bindParams(array $params) { if (array_key_exists(0, $params)) { array_unshift($params, null); unset($params[0]); } foreach ($params as $param => $value) { $this->bindParam($param, $value); } } の if (array_key_exists(0, $params)) { array_unshift($params, null); unset($params[0]); } この部分は具体的に何をしている処理なのでしょうか? 配列内に数値の0があるかを調べて、 存在したらunshiftで先頭にnullを挿入する。 でもunsetでその挿入した行(インデックスが0なので)を削除する。 というふうに自分は解釈しているのですが、もしそれだと array_unshiftでnullの行を挿入する意味が分かりません・・・ そもそもなぜarray_key_existsで0があるかを調べる必要があるのでしょうか? できればこのメソッドの具体的な使用も含めてアドバイス頂けないでしょうか?

    • 締切済み
    • PHP
  • HTMLをWordPress化 CSSをどこに?

    HTMLをWordPress化にするための勉強をしています。 HTML側 CSS ヘッダー内 <link rel="stylesheet" href="css/test.css"> <link rel="stylesheet" href="css/test2.css"> JS ヘッダー内ではなく一番下</body>の前に配置 <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> <script src="js/test1.js"></script> <script src="js/test2.js"></script> ★これをfunctions.php に記述するにはどうすれば良いのでしょうか? function sample_scripts() {   // CSSの読み込み   wp_enqueue_style( 'jdsa-style', get_template_directory_uri().'/css/test.css', array(), '1' );   wp_enqueue_style( 'jdsa-style', get_template_directory_uri().'/css/test2.css', array(), '1' );   // jqueryの読み込み wp_deregister_script( 'jquery' ); wp_enqueue_script( 'jquery', get_template_directory_uri().'https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js', array(), '1.10.3', true );   // サイト内のjsの読み込み   wp_enqueue_script( 'jdsa-script', get_template_directory_uri().'/js/test1.js', array(), '1', true );   wp_enqueue_script( 'jdsa-script', get_template_directory_uri().'/js/test2.js', array(), '1', true ); }//ここまで 結果 ヘッダー内にtest.cssのみ記載、test2.cssは記載していない。 jsはどこにも記載していませんでした。 どこが間違っておりますか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • wordpressでワーニングが出て解決できません

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'comments_allow_only_column' not found or invalid function name in C:\xampp\htdocs\wordpress\wp-includes\plugin.php on line 170 ↓plugin.php の170行目の下記の★★部分でエラーが出ているようなのですが PHPの知識がないためどこが悪いのかわかりません。 フォームを設置した部分あたりから全てのページにエラーがでるようになってしまいました。 環境はローカルに設定しています。 $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); -------------------- function apply_filters($tag, $value) { global $wp_filter, $merged_filters, $wp_current_filter; $args = array(); // Do 'all' actions first if ( isset($wp_filter['all']) ) { $wp_current_filter[] = $tag; $args = func_get_args(); _wp_call_all_hook($args); } if ( !isset($wp_filter[$tag]) ) { if ( isset($wp_filter['all']) ) array_pop($wp_current_filter); return $value; } if ( !isset($wp_filter['all']) ) $wp_current_filter[] = $tag; // Sort if ( !isset( $merged_filters[ $tag ] ) ) { ksort($wp_filter[$tag]); $merged_filters[ $tag ] = true; } reset( $wp_filter[ $tag ] ); if ( empty($args) ) $args = func_get_args(); do { foreach( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ){ $args[1] = $value; ★★$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); } どの辺を修正すればよいのでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP

専門家に質問してみよう