質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

427閲覧

ワードプレスで子テーマから数値の桁を修正する方法

fuku-chann

総合スコア82

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2020/04/26 22:02

編集2020/04/30 11:12

行き詰ったので教えてください。

当方ワードプレスを使用しています。テーマは「Sydney」です。基本はテーマの機能(elementerなど)から修正するようにしていますが、できなかった場合のみ子テーマのCSSを変更して修正しています。

プラグイン:Appointment Hour Bookingを使って予約フォームを作成していますが、その中で問題が発生しています。

今回はたぶんCSSの管轄外の変更になると思い、経験がなかったためご質問させていただいています。

下記イメージの下の方に「30000.00円」とありますが、これを「30000円」に変更したいです。桁を変えたい時、親テーマではなく子テーマから変更するにはどのようにすればよいでしょうか?

イメージ説明

cost...は、自動で計算されています。

現在のfunction.php

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ちょっとコード追ってみた
予想通りnumber_formatを使ってはいたけど
直接小数点以下の桁数を変更する手段はなし
データ投稿時にデータ内容をいじる手段は
用意されているみたいなのでそっちで

php

1add_action('cpappb_process_data',function(&$params){ 2 $params['final_price']=substr($params['final_price'],0,-3); 3});

投稿2020/04/27 01:30

KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuku-chann

2020/04/27 14:50

kazuhiroHatano様 ご回答いただきありがとうございます。 教えていただいたコードは子テーマのfunctions.phpに記載するという理解でお間違いないでしょうか?
KazuhiroHatano

2020/04/27 15:56

>子テーマのfunctions.php そうです、ただしこれは出力時ではなく投稿時の処理なので 投稿済みのものには更新をしないと反映しません
fuku-chann

2020/04/29 09:26

kazuhiroHatano様 ご回答ありがとうございます。 一点確認させて下さい。 出力時とはホームページ上で計算されるときのことでしょうか? また、投稿時とはメールに記載されるときのことでしょうか?
KazuhiroHatano

2020/04/29 09:59

投稿時とはデータベースに保存される時です appointment-hour-booking/cp-main-class.inc.php CP_AppBookingPlugin::data_managementにて $wpdb->updateをする直前にcpappb_process_dataフィルタを通されます
fuku-chann

2020/04/30 08:04

kazuhitoHatano様 ご回答大変感謝いたします。 出力時のやり方が知りたかったのですが、方法がないのでしょうか。。。 もう少し探してみたいと思います。
KazuhiroHatano

2020/04/30 09:16

小数点を追加してるのはここ js/fields-public/35_fbuilder.fapp.js line:673 total = total.toFixed(2); ここをスキップさせたり値を変えたりする手段は用意されてない なので変更のタイミングで出力を加工するしか手段はないかと思われ 直近にtriggerされるイベントは $(document).trigger("afterOnChange",{name:me.name, me:me});
fuku-chann

2020/04/30 11:16

KazuhiroHatano様 たびたびご返信いただきありがとうございます。 function.phpは触ったことがないので、加工前に確認させてください。 23行目にご紹介いただいた下記のコードを入力すればよいのでしょうか?(質問分の最後にfunction.phpの画像を追加しましたのでご確認ください。) $(document).trigger("afterOnChange",{name:me.name, me:me});
KazuhiroHatano

2020/04/30 11:36 編集

先のコメントは方法に至るヒントを示したのみです 出力はJSで行われています、JSで対応するしかありません しかしtoFixの引数は変数になっていないので変えられず 出力時にtoFixの処理をスキップする手段もどうやら用意されていません 幸いスロットの出力のタイミングでイベントが発火しているので このタイミングで値段のテキストを加工すれば対応できそうです $(document).on("afterOnChange",function(event){ //ここで値段の表記の箇所を見つけて.00を除去する処理を書く });
fuku-chann

2020/04/30 12:11

KazuhitoHatano様 ご回答ありがとうございます。 初歩的な質問ですみませんが、どのファイルを閲覧されていますでしょうか? 大変恐縮ですが、ご教示お願いいたします。
KazuhiroHatano

2020/04/30 12:29

appointment-hour-booking/js/fields-public/35_fbuilder.fapp.js です
fuku-chann

2020/04/30 13:58

kazuhitoHatano様 ご回答ありがとうございます。 コード見つかりました。とても長いコードでビックリしました。解読していただき大変感謝いたします。 コードは下記のような感じになりますでしょうか? 750 $(document).on("afterOnChange",function(event){ 751 total = total.toFixed(0); });
KazuhiroHatano

2020/04/30 17:29

プラグインのファイルを直接編集しようとしてますかね それはダメです、プラグインに更新がかかったら上書きされます $(document).on("afterOnChange",function(e){ var $tgt=$('.usedSlots'+e.me.name+' .totalCost .n'); $tgt.text($tgt.text().replace('.00','')); }); みたいな感じじゃないですかね どこにどう書くべきかは自分で
fuku-chann

2020/04/30 20:30

kazuhiroHatano様 ご回答ありがとうございます。 直接編集しようとしていました。更新で消えてしまいますね。ありがとうございます。 子テーマでやり方を探してみます。(もしかしたら別の質問で相談させていただくかもしれませんが) コードがわかったので大きく前進できました。 ありがとうございました。 この質問は解決にしたいと思いますが、その前に一点教えてください。 どのようにして該当のコードが下記ファイルにあるとわかったのでしょうか?(jsファイル多数あったと思います) appointment-hour-booking/js/fields-public/35_fbuilder.fapp.js いろいろとお調べいただいたと思いますが、今後のために見つかるまでの経緯をご教示いただますと幸いです。
KazuhiroHatano

2020/05/01 00:02

プラグイン内を出力されるコードのクラス名で検索ですかね そこから周辺のコードを読んでどうやって出力してるのか どのような加工手段が用意されてるか見る感じです
fuku-chann

2020/05/01 01:51

kazuhiroHatano様 ご回答ありがとうございます????‍♂️ 度々恐縮ですが、プラグイン内を出力されるコードのクラス名はどのように調べるのでしょうか? また、検索はjsのファイルを一つ一つ開いて検索していく、ということでしょうか?
KazuhiroHatano

2020/05/01 01:58

それなりの開発用のソフトならプロジェクト内の検索機能ぐらいは 大概ついてるんじゃないかと思います それでなくてもMacでもWinでも フォルダを対象にして検索で見つけられるかと思います
fuku-chann

2020/05/01 14:37

kazuhiroHatano様 ご回答ありがとうございます。 解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問