Plugins 使用Javascript定制Wordpress联系人表单谷歌地图反向地理定位赢得';行不通
我真的很困惑,我已经修改了sitepoint教程联系人表单,添加了额外的字段和google maps反向地理位置。我有一些奇怪的错误使我发疯。我可以让它在普通html中工作,但当我创建自定义插件代码并将其发送到wordpress时,javascript和jquery无法工作,即使脚本被抵抗并正确排队,我可以在wordpress页面的头部阅读它们 这就是我试图在我的本地主机上实现的(活动开发站点)(工作非常完美),然而,地图不会在我的远程站点上呈现,当我激活我的自定义插件时,我得到的只是html中的基本表单输出,其他什么都没有 这可以在这里看到 自定义插件的插件代码在这里Plugins 使用Javascript定制Wordpress联系人表单谷歌地图反向地理定位赢得';行不通,plugins,Plugins,我真的很困惑,我已经修改了sitepoint教程联系人表单,添加了额外的字段和google maps反向地理位置。我有一些奇怪的错误使我发疯。我可以让它在普通html中工作,但当我创建自定义插件代码并将其发送到wordpress时,javascript和jquery无法工作,即使脚本被抵抗并正确排队,我可以在wordpress页面的头部阅读它们 这就是我试图在我的本地主机上实现的(活动开发站点)(工作非常完美),然而,地图不会在我的远程站点上呈现,当我激活我的自定义插件时,我得到的只是html中
<?php
function contact_setup() {
// Register the script like this for a plugin:
wp_register_script( 'bootstrap-min', plugins_url( 'js/bootstrap.min.js', __FILE__ ) );
wp_register_script( 'placepicker', plugins_url( 'js/jquery.placepicker.js', __FILE__ ),array('jquery') );
wp_register_script( 'placepicker-min', plugins_url( 'js/jquery.placepicker.min.js', __FILE__ ),array('jquery') );
wp_register_script( 'dtpicker', plugins_url( 'js/jquery.simple-dtpicker.js', __FILE__ ), array('jquery') );
wp_register_script( 'googlemapslibrary', 'http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places&', __FILE__, false );
wp_register_script( 'placepickershort', plugins_url( 'js/placepicker.js', __FILE__) );
wp_register_script( 'appenddtpicker', plugins_url('js/appenddtpicker.js',__FILE__));
wp_enqueue_script('bootstrap-min');
wp_enqueue_script('placepicker');
wp_enqueue_script('placepicker-min');
wp_enqueue_script('dtpicker');
wp_enqueue_script('googlemapslibrary');
wp_enqueue_script('placepickershort');
wp_enqueue_script('appenddtpicker');
}
add_action( 'wp_enqueue_scripts', 'contact_setup' );
function contact_styles() {
wp_register_style( 'jquery-ui', plugins_url('css/jquery-ui.css', __FILE__));
wp_register_style( 'bootstrap-theme-min', plugins_url( 'css/bootstrap-theme-min.css', __FILE__ ), array(), '20152208', 'all' );
wp_register_style( 'bootstrap-min', plugins_url( 'css/bootstrap-min.css', __FILE__ ), array(), '20152208', 'all' );
wp_register_style( 'contact-style', plugins_url( 'css/contact-style.css', __FILE__ ), array(), '20152208', 'all' );
wp_register_style( 'jquery-simple-datepicker', plugins_url( 'css/jquery.simple-dtpicker.css', __FILE__ ), array(), '20152208', 'all' );
wp_enqueue_script('bootstrap-theme-min');
wp_enqueue_script('bootstrap-min');
wp_enqueue_script('contact-style');
wp_enqueue_script('jquery-simple-datepicker');
}
add_action( 'wp_enqueue_scripts', 'contact_styles' );
function html_form_code() {
echo '<div class="form-cont" data-example>'."\r\n";
echo '<div class="form-box">'."\r\n";
echo '<div class="form-group">'."\r\n";
echo '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post">'."\r\n";
echo '<p>'."\r\n";
echo '<div class="form-group">'."\r\n";
/*name input*/
echo 'Your Name (required) <br />'."\r\n";
echo '<input type="text" class="fm-text" name="fm_name" placeholder="Your Name" pattern="[a-zA-Z0-9 ]+" value="' . ( isset( $_POST["fm_name"] ) ? esc_attr( $_POST["fm_name"] ) : '' ) . '" size="40" />'."\r\n";
echo '</div>'."\r\n";
/*email input*/
echo '<div class="form-group">'."\r\n";
echo 'Your Email (required) <br />'."\r\n";
echo '<input type="email" class="fm-text" name="fm_email" placeholder="Your Email Address" value="' . ( isset( $_POST["fm_email"] ) ? esc_attr( $_POST["fm_email"] ) : '' ) . '" size="40" />'."\r\n";
echo '</div>'."\r\n";
/*telephone input*/
echo '<div class="form-group">'."\r\n";
echo 'Your Telephone Number (required) <br />'."\r\n";
echo '<input type="fm-text" placeholder="Your Telephone Number" name="fm_telephone" value="' . ( isset( $_POST["fm_telephone"] ) ? esc_attr( $_POST["fm_telephone"] ) : '' ) . '" size="40" />'."\r\n";
echo '</div>'."\r\n";
//
//
/*pick up points start here */
echo '<div class="form-group">'."\r\n";
echo 'Pick Up Point (required)<br />'."\r\n";
echo '<input type="text" class="placepicker form-control" placeholder="Choose your pickup point" data-map-container-id="collapseOne" name="fm_pickup" value="' . ( isset( $_POST["fm_pickup"] ) ? esc_attr( $_POST["fm_pickup"] ) : '' ) . '" size="40" />'."\r\n";
echo '</div>'."\r\n";
echo '<div id="collapseOne" class="collapse">'."\r\n";
echo '<div class="placepicker-map thumbnail"></div>'."\r\n";
echo '</div>'."\r\n";
/*via alternate pick up point (optional)*/
echo '<div class="form-group">'."\r\n";
echo 'Additional Pick Up Point (Optional)<br />'."\r\n";
echo '<input type="text" class="placepicker form-control" placeholder="Choose an additional optional pick up point" data-map-container-id="collapsetwo" name="fm_via" value="' . ( isset( $_POST["fm_via"] ) ? esc_attr( $_POST["fm_via"] ) : '' ) . '" size="40" />'."\r\n";
echo '</div>'."\r\n";
echo '<div id="collapsetwo" class="collapse">'."\r\n";
echo '<div class="placepicker-map thumbnail"></div>'."\r\n";
echo '</div>'."\r\n";
/*destination */
echo '<div class="form-group">'."\r\n";
echo 'Destination (required)<br />'."\r\n";
echo '<input type="text" class="placepicker form-control" placeholder="Type in your destination" data-map-container-id="collapsethree" name="fm_destination" value="' . ( isset( $_POST["fm_destination"] ) ? esc_attr( $_POST["fm_destination"] ) : '' ) . '" size="40" />'."\r\n";
echo '</div>'."\r\n";
echo '<div id="collapsethree" class="collapse">'."\r\n";
echo '<div class="placepicker-map thumbnail"></div>'."\r\n";
echo '</div>'."\r\n";
/*Return or Single */
echo '<div class="form-group">';
echo '<label>With Return: ';
echo '<input type="radio" class="fm-text" value="' . ( isset( $_POST["fm_booking_type"] ) ? esc_attr( $_POST["fm_booking_type"] ) : '' ) . '" name="fm_booking_type" checked/>';
echo '</label>';
echo '</div>';
echo '<div class="form-group">';
echo '<label>One Way Only: ';
echo '<input type="radio" class="fm-text" value="' . ( isset( $_POST["fm_booking_type"] ) ? esc_attr( $_POST["fm_booking_type"] ) : '' ) . '" name="fm_booking_type" />';
echo '</label>';
echo '</div>';
/*number in party*/
echo '<div class="form-group">';
echo '<label>Number in Party';
echo '<input class="text" type="number" id="party_size" value="' . ( isset( $_POST["fm_party_size"] ) ? esc_attr( $_POST["fm_party_size"] ) : '' ) . '" name="fm_party_size">';
echo '</label>';
echo '</div>';
/*overnight bags*/
echo '<div class="form-group">';
echo '<select id="luggage" name="luggage" value="' . ( isset( $_POST["fm_luggage"] ) ? esc_attr( $_POST["fm_luggage"] ) : '' ) . '" >';
echo '<option>Overnight Bags</option>';
echo '<option>Small Ruck Sacks</option>';
echo '<option>Suitcases</option>';
echo '<option>Golf Bags</option>';
echo '<option>Sports Kits</option>';
echo '</select>';
echo '</div>';
echo '<div class="form-group">';
echo '<label>Date and Time of Departure';
echo '<input type="text" value="' . ( isset( $_POST["date11"] ) ? esc_attr( $_POST["date11"] ) : '' ) . '" name="date11" />';
echo '</label>';
echo '</div>';
echo '<div class="form-group">';
echo '<label>Date and Time of return';
echo '<input type="text" value="' . ( isset( $_POST["date12"] ) ? esc_attr( $_POST["date12"] ) : '' ) . '" name="date12" />';
echo '</label>';
echo '</div>';
?>
<script type="text/javascript">
$(function(){
$('*[name=date10]').appendDtpicker({
"closeOnSelected": true
});
});
$(function(){
$('*[name=date11]').appendDtpicker({
"closeOnSelected": true
});
});
</script>
<?php
/*Additional Message */
echo 'Any Other Requirements or Pick Up Points';
echo '<textarea rows="10" cols="35" name="message">' . ( isset( $_POST["message"] ) ? esc_attr( $_POST["message"] ) : '' ) . '</textarea>';
echo '</p>';
echo '<p><input type="submit" name="submitted" value="Send"/></p>';
echo '</form>';
echo '</div><!--end form-group-->';
echo '</div><!--end form-box-->';
echo '<div><!--end form-cont-->';
}
function deliver_mail() {
// if the submit button is clicked, send the email
if ( isset( $_POST['submitted'] ) ) {
// sanitize form values
$ct_name = sanitize_text_field( $_POST["fm_name"] );
$ct_email = sanitize_email( $_POST["fm_email"] );
$ct_telephone = sanitize_text_field($_POST["fm_telephone"]);
$ct_subject = "Online Enquiry";
//sanitise location information
$ct_pickup = sanitize_text_field($_POST['fm_pickup']);
$ct_via = sanitize_text_field($_POST['fm_via']);
$ct_destination = sanitize_text_field($_POST['fm_destination']);
//sanitise additional infomration//
$ct_booking_type = ($_POST['fm_booking_type']);
$ct_party_size = ($_POST['fm_party_size']);
$ct_luggage = ($_POST['fm_luggage']);
$ct_message = esc_textarea( $_POST["message"] );
$ct_date11 = sanitize_text_field($_POST['date11']);
$ct_date12 = sanitize_text_field($_POST['date12']);
// get the blog administrator's email address
$to = get_option( 'admin_email' );
$headers = "From: $ct_name <$ct_email>" . "\r\n";
// If email has been process for sending, display a success message
if ( wp_mail( $to, $ct_subject, $ct_message, $headers)) {
echo '<div>';
echo '<p>Thanks for contacting Us, we will be in touch soon.</p>';
echo '</div>';
echo $to, $ct_name, $ct_email, $ct_telephone, $ct_subject, $ct_pickup, $ct_via, $ct_destination, $ct_booking_type, $ct_luggage, $ct_date11, $ct_date12, $message, $headers;
} else {
echo 'An unexpected error occurred';
}
}
}
function cf_shortcode() {
ob_start();
deliver_mail();
html_form_code();
return ob_get_clean();
}
add_shortcode( 'sitepoint_contact_form', 'cf_shortcode' );
?>
我一直在努力尝试,发现如果我粘贴在网页顶部标题中的链接,我可以让插件或多或少按预期工作,因此我显然在wordpress中设置的注册和查询脚本方面出了问题。如果有人能帮忙,我看不出那是什么?谢谢:)奇怪的是,在开发表单时,我使用这个jQuery库创建了我的html表单(),但该站点引用了这个表单(wordpress中包含的默认值)‘我确保它们都是相同的版本,因为我在开发表单时注意到了这一点,并且我已经检查了它们,虽然有一个单词在最后一行以“无冲突”结尾。所有其他条目看起来都是一样的。我不得不作弊并使用和IFRAME:(我知道它不太理想,但在这种情况下,doe比perfect好。如果有人能纠正上述问题,尽管我仍然想找出我的代码不起作用的原因。