1

wordpress テンプレートの作業を開始しましたが、このお問い合わせフォームに非常に固執していますが、問題が見つからないようです。私はどういうわけかphpに慣れていないことに言及しなければなりませんが、かなり早く理解できます。これは私が連絡先ページに使用しているものです (他の要素もありますが、問題のあるコードに干渉しません):

    <?php get_header();
$two2_option = two2_get_global_options();
global $post; setup_postdata($post); ?>

<?php if($two2_option['two2_contact_email']){ ?>
        <form method="post" id="ajax_form" action="#">
        <fieldset>
          <ul class="form-item" id="field-name">
            <li>
              <label><?php _e("Name","jbirdie"); ?>:<span class="field-required" title="<?php _e("Required Field","jbirdie"); ?>">*</span></label>
              <input type="text" maxlength="90" name="name" id="name" placeholder="<?php _e("name","jbirdie"); ?>" size="30" class="form-field required text_input clear" />
            </li>
            <li>
              <label><?php _e("E-mail","jbirdie"); ?>:<span class="field-required" title="<?php _e("Required Field","jbirdie"); ?>">*</span></label>
              <input type="email" maxlength="90" name="email" id="email" placeholder="<?php _e("e-mail","jbirdie"); ?>" size="30" class="form-field required email text_input clear" />
            </li>
            <li>
              <label><?php _e("Phone","jbirdie"); ?></label>
              <input type="number" maxlength="90" name="phone" id="phone" placeholder="<?php _e("phone number","jbirdie"); ?>" size="30" class="form-field required email text_input clear" />
            </li>
            <li class="message">
              <label><?php _e("Comments","jbirdie"); ?> <span>Available for quotation</span></label>
              <textarea cols="55" rows="" name="message" id="message" placeholder="<?php _e("Comments","jbirdie"); ?>"  class="form-textarea text_area clear" ></textarea>
            </li>
          </ul>
          <input type="submit" name="submit" id="submit" value="send" class="submit form-submit" />
          <div id="result"></div>
        </fieldset>
     </form>
         </div>
        <?php } ?>
    </div>
    <?php } ?>
</div>

</div>

<?php get_footer(); ?>

functions.php の次の内容:

add_action('wp_ajax_nopriv_two2_send_contact_form', 'two2_send_contact_form');
add_action('wp_ajax_two2_send_contact_form', 'two2_send_contact_form');

function two2_send_contact_form(){
    $two2_option = two2_get_global_options();
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];

    $subject = "Message from your portfolio";
    $body = "From $name, \n\n$email, \n\n$phone, \n\n$message";

    $to = $two2_option['two2_contact_email'];

    $result = mail($to, $subject, $body);

    if($result){ 
        print "<h3>".__("Success","two2")."</h3><p>".__("Your email has been sent!","two2")."</p>"; 
    } else {  
        print "<h3>".__("Error","two2")."</h3><p>".__("Try it again later, please.","two2")."</p>"; 
    }

    die();
}

...そして、それは単に機能していません...エラーを見つけるためのヒントまたはsthを教えてください。

4

1 に答える 1

0

フォームを ajax ハンドラーに送信するスクリプトはありますか? 例えば

<script type="text/javascript" >
  jQuery(document).ready(function($) {
     $('#ajax_form').submit(function(evt){
       var form_data = {
        action: 'two2_send_contact_form',
        name: jQuery('#name').val(),
        email: jQuery('#email').val(),
        phone: jQuery('#phone').val(),
        message: jQuery('#message').val()
      };
      $.post('<?php echo admin_url('admin-ajax.php'); ?>', form_data, function(response) {
        console.log(response);
      });
      return false;
    });
  });
</script>

http://codex.wordpress.org/AJAX_in_Plugins

<?php } ?>また、連絡先フォームに追加の php 閉じ中括弧があります。

修正された jQuery セレクターと ajax URL を編集します。

于 2012-11-28T11:48:02.343 に答える