フォーラムへの返信

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック投稿者 imap

    (@ixt220)

    Takashi Kitajima様

    お世話になっております。
    ご回答ありがとうございます。

    返信が遅くなって申し訳ありません。
    親切な対応およびご回答いただき誠にありがとうございます。

    コピペではなく、コードを辿って見る癖をつけたいと思います。

    今後とも宜しくお願い致します。

    トピック投稿者 imap

    (@ixt220)

    Takashi Kitajima様

    お世話になっております。
    $Data->get(‘field_name’)で返される値は文字列ということでしょうか?

    配列$aryに入れて、in_arrayで判別し、
    下記のようなコードにしたらうまくいきました。

    $ary = explode(",", $Data->get('field_name') );
    if ( in_array( 'AAA', $ary )) {
      $mail_body = 'AAAが入っている';
    } else {
       $mail_body = 'AAAが入っていない!!';
    }

    うまく値を判別し条件分岐できたのですが、これで大丈夫でしょうか?

    そもそもPHPの中身やプラグインの構造など根本的な部分を理解せず、
    つぎはぎしながら今回たまたまうまく条件分岐できましたが、
    お問い合わせフォームという重要なページですので、これで大丈夫かまだ不安です。

    エンジニアの皆様も分からない部分にぶつかった時、どのように解決されているのでしょうか?

    表題と関係ない質問になってしまい申し訳ありません。

    トピック投稿者 imap

    (@ixt220)

    Takashi Kitajima様

    返信ありがとうございます。

    上記のコードを入力したところ、下記のように表示されました。

    string(半角数字) "AAA,BBB"

    チェックした値はちゃんと表示されております。

    トピック投稿者 imap

    (@ixt220)

    MW WP Formの過去のフォーラムを確認し、つぎはぎしながら試していますが、
    メールは届くのですが、チェックボックスの中身を正しく判別できません。

    function my_admin_mail( $Mail, $values, $Data ) {
    
      if ( !is_null( $Data->get('field_name') )) {
        $my_Mail = clone $Mail;
        $my_Mail->subject = '確認テストメール';
        $my_Mail->to = 'aaa@hoge';
    
        if ( in_array( 'AAA', $Data->get('field_name') )) {
          $mail_body = 'AAAが入っている';
        } else {
          $mail_body = 'AAAが入っていない!!';
        }
    
        $my_Mail->body .= $mail_body;
        $my_Mail->send();
      }
      return $Mail;
    }
    add_filter( 'mwform_admin_mail_mw-wp-form-XXX', 'my_admin_mail', 10, 3 );

    チェックボックス(field_name)は
    ・AAA
    ・BBB
    ・CCC
    があり、テストではAAAとBBBにチェックを入れて送信しています。

    届くメールには、「AAAが入っていない!!」のメッセージがあり、in_arrayの部分で中身を判別できていなそうなのですが、ここでつまづいております。

    これを
    if ( in_array( ‘AAA’, $Data->get(‘field_name’) ))
    ↓↓↓
    if ( in_array( ‘AAA’, $values[‘field_name’][‘data’] ))
    にしてみましたが、うまくいきませんでした。

    どなたかご教示頂けると幸いです。
    宜しくお願い致します。

    フォーラム: 使い方全般
    返信が含まれるトピック: リダイレクトについて
    トピック投稿者 imap

    (@ixt220)

    kjmtsh様

    ご回答ありがとうございます。

    > 新しいページにリダイレクトした方がよくないですかね?

    「http://www.foo.com/?works=記事タイトル」を
    Redirect permanentかRedirectMatch permanentなどでどう記載していいか分からず、
    404に飛ばそうとしておりました。

    このURLというのは
    「http://www.foo.com/?works=記事タイトル」
    ↓↓↓↓
    「http://www.foo.com/index.php?works=記事タイトル」
    が表示されているのでしょうか?

    フォーラム: プラグイン
    返信が含まれるトピック: MW WP Formの管理者宛メールについて
    トピック投稿者 imap

    (@ixt220)

    早急なご回答ありがとうございます。
    $Mail->toだったら、ユーザー側に届いてしまったので、
    $Mail->fromに修正したら、無事管理者宛にメールが届き、
    送信者・送信元にユーザーの入力値が入っていました。
    ただ、今度は管理者宛のメールが2通届くようになってしまい、
    $Mail->send();を削除してみたら、1通のみ届くようになりました。
    最終的なコードは以下になりました。

    add_filter( 'mwform_admin_mail_mw-wp-form-92', 'my_admin_mail', 10, 2 );
    function my_admin_mail( $Mail, $data ) {
    
      $Mail->from = $data['email'];
      $Mail->sender = $data['name'];
    
      return $Mail;
    }

    早急なご回答と分かりやすいご説明に、大変感謝しております。
    この度は誠にありがとうございました。
    今後とも宜しくお願い致します。

    フォーラム: プラグイン
    返信が含まれるトピック: MW WP FormのDB管理画面について
    トピック投稿者 imap

    (@ixt220)

    大変申し訳ありません。
    自己解決しました。

    プラグインを全部停止し、function.phpも全て削除したら、「なし」が消えましたので、
    順番に辿っていったら、
    function.php内に記述した、カスタム投稿のカスタムフィールド名を一覧ページに表示する、
    といった記述が「なし」を表示させておりました。

    その部分を削除しましたら、正常に表示されました。
    削除したことでカスタム投稿の一覧ページの方の問題を残したままですが、
    運用に大きな問題はありませんので、
    これで解決済みとさせて頂きます。

    基本的なことでトピックス立ててしまい大変申し訳ありませんでした。

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドの値の取得について
    トピック投稿者 imap

    (@ixt220)

    >pluto1234様
    ご返信ありがとうございました。
    うまく表示できるようになりました。

    PHPは初心者でありまして、
    「3項演算子」を検索して下記のように書いてみても上手くいかず。。。

    ‘meta_key’ => ‘event_end’ ? ‘event_end’ : ‘event_start’,

    さらに検索していたら、3項演算子のページに「isset」なるものがあったので、
    検索して見たら、変数の存在の判別?ということでしたので、
    下記のように書いたら表示されました。
    この書き方で問題はありませんでしょうか?

    ‘meta_key’ => isset( $_GET[‘event_end’] ) ? ‘event_end’ : ‘event_start’,

    WordPressのカスタマイズを検索してコピペで何とか対応しているため
    表面的な理解のみで、このような問題にあたった時まったく解決できませんでした。

    本当にありがとうございました。

8件の返信を表示中 - 1 - 8件目 (全8件中)