Version Description
Download this release
Release Info
Developer | Yuichiro ABE |
Plugin | Contact Form 7 add confirm |
Version | 1.3.9.1 |
Comparing to | |
See all releases |
Code changes from version 1.3.8.13 to 1.3.9.1
- contact-form-7-confirm.php +2 -2
- includes/controller.php +54 -4
- includes/js/scripts.js +21 -8
- modules/back.php +1 -1
- modules/confirm.php +1 -1
- readme.txt +12 -2
- settings.php +3 -0
contact-form-7-confirm.php
CHANGED
@@ -7,7 +7,7 @@ Author: Yuichiro ABE
|
|
7 |
Author URI: http://www.eyeta.jp/
|
8 |
Text Domain: contact-form-7-confirm
|
9 |
Domain Path: /languages/
|
10 |
-
Version: 1.3.
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2014- Yuichiro ABE (email: y.abe at eyeta.jp)
|
@@ -44,7 +44,7 @@ Version: 1.3.8.13
|
|
44 |
戻って編集ボタンのデフォルトテキストが英語だった件を修正
|
45 |
以降、readme.txtに記述
|
46 |
*/
|
47 |
-
define( 'WPCF7C_VERSION', '1.3.
|
48 |
|
49 |
if ( ! defined( 'WPCF7C_PLUGIN_BASENAME' ) )
|
50 |
define( 'WPCF7C_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
7 |
Author URI: http://www.eyeta.jp/
|
8 |
Text Domain: contact-form-7-confirm
|
9 |
Domain Path: /languages/
|
10 |
+
Version: 1.3.9.1
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2014- Yuichiro ABE (email: y.abe at eyeta.jp)
|
44 |
戻って編集ボタンのデフォルトテキストが英語だった件を修正
|
45 |
以降、readme.txtに記述
|
46 |
*/
|
47 |
+
define( 'WPCF7C_VERSION', '1.3.9.1' );
|
48 |
|
49 |
if ( ! defined( 'WPCF7C_PLUGIN_BASENAME' ) )
|
50 |
define( 'WPCF7C_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
includes/controller.php
CHANGED
@@ -10,6 +10,7 @@
|
|
10 |
|
11 |
add_action( 'init', 'wpcf7c_control_init', 10 );
|
12 |
function wpcf7c_control_init() {
|
|
|
13 |
wpcf7c_ajax_json_echo();
|
14 |
|
15 |
// キャプチャ用フックの差替え
|
@@ -23,7 +24,11 @@ function wpcf7c_ajax_json_echo() {
|
|
23 |
if (isset($_POST['_wpcf7c'])) switch($_POST["_wpcf7c"]) {
|
24 |
case "step1":
|
25 |
// $result = apply_filters( 'wpcf7_before_send_mail', $result );
|
26 |
-
|
|
|
|
|
|
|
|
|
27 |
|
28 |
//$items = apply_filters( 'wpcf7_ajax_json_echo', $items, $result );
|
29 |
add_filter("wpcf7_ajax_json_echo", "wpcf7c_ajax_json_echo_step1", 10, 3);
|
@@ -66,14 +71,42 @@ function wpcf7c_ajax_json_echo() {
|
|
66 |
return;
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
function wpcf7c_before_send_mail_step1(&$cls) {
|
70 |
//eyeta_log("wpcf7c_before_send_mail_step1");
|
71 |
$cls->skip_mail = true;
|
72 |
}
|
73 |
|
74 |
function wpcf7c_ajax_json_echo_step1($items, $result) {
|
75 |
-
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
if(!isset($items["onSubmit"]) || $items["onSubmit"] == null) {
|
78 |
$items["onSubmit"] = array("wpcf7c_step1('" . $_POST['_wpcf7_unit_tag'] . "');");
|
79 |
} else {
|
@@ -95,6 +128,16 @@ function wpcf7c_ajax_json_echo_step1($items, $result) {
|
|
95 |
|
96 |
unset($items['captcha']);
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
|
100 |
return $items;
|
@@ -131,7 +174,14 @@ function wpcf7c_captcha_validation_filter( $result, $tag ) {
|
|
131 |
|
132 |
function wpcf7c_ajax_json_echo_step2($items, $result) {
|
133 |
//eyeta_log("wpcf7c_ajax_json_echo_step1");
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
if(!isset($items["onSubmit"]) || $items["onSubmit"] == null) {
|
136 |
$items["onSubmit"] = array("wpcf7c_step2('" . $_POST['_wpcf7_unit_tag'] . "');");
|
137 |
} else {
|
10 |
|
11 |
add_action( 'init', 'wpcf7c_control_init', 10 );
|
12 |
function wpcf7c_control_init() {
|
13 |
+
|
14 |
wpcf7c_ajax_json_echo();
|
15 |
|
16 |
// キャプチャ用フックの差替え
|
24 |
if (isset($_POST['_wpcf7c'])) switch($_POST["_wpcf7c"]) {
|
25 |
case "step1":
|
26 |
// $result = apply_filters( 'wpcf7_before_send_mail', $result );
|
27 |
+
if(WPCF7_VERSION >= 3.9) {
|
28 |
+
add_filter( 'wpcf7_acceptance', 'wpcf7c_acceptance_filter', 11, 1 );
|
29 |
+
} else {
|
30 |
+
add_action("wpcf7_before_send_mail", "wpcf7c_before_send_mail_step1", 10, 2);
|
31 |
+
}
|
32 |
|
33 |
//$items = apply_filters( 'wpcf7_ajax_json_echo', $items, $result );
|
34 |
add_filter("wpcf7_ajax_json_echo", "wpcf7c_ajax_json_echo_step1", 10, 3);
|
71 |
return;
|
72 |
}
|
73 |
|
74 |
+
/**
|
75 |
+
* 3.9からフックが変わったため、
|
76 |
+
* acceptanceの機能を利用してメール送信をスキップする。
|
77 |
+
*
|
78 |
+
* @param $accepted
|
79 |
+
* @return bool
|
80 |
+
*/
|
81 |
+
function wpcf7c_acceptance_filter($accepted) {
|
82 |
+
global $wpcf7_confflag;
|
83 |
+
|
84 |
+
if($accepted == false) {
|
85 |
+
// すでにエラー
|
86 |
+
return $accepted;
|
87 |
+
}
|
88 |
+
|
89 |
+
// これが呼ばれるときは必ずSTEP1
|
90 |
+
$wpcf7_confflag = true;
|
91 |
+
return false;
|
92 |
+
}
|
93 |
+
|
94 |
function wpcf7c_before_send_mail_step1(&$cls) {
|
95 |
//eyeta_log("wpcf7c_before_send_mail_step1");
|
96 |
$cls->skip_mail = true;
|
97 |
}
|
98 |
|
99 |
function wpcf7c_ajax_json_echo_step1($items, $result) {
|
100 |
+
global $wpcf7_confflag;
|
101 |
+
|
102 |
+
$flag = false;
|
103 |
+
if(WPCF7_VERSION >= 3.9) {
|
104 |
+
$flag = $wpcf7_confflag;
|
105 |
+
} else {
|
106 |
+
$flag = $result['mail_sent'];
|
107 |
+
}
|
108 |
+
|
109 |
+
if($flag) {
|
110 |
if(!isset($items["onSubmit"]) || $items["onSubmit"] == null) {
|
111 |
$items["onSubmit"] = array("wpcf7c_step1('" . $_POST['_wpcf7_unit_tag'] . "');");
|
112 |
} else {
|
128 |
|
129 |
unset($items['captcha']);
|
130 |
|
131 |
+
} else {
|
132 |
+
// フィルタ指定があればエラー時にアンカーまでスクロールさせる
|
133 |
+
$result = false;
|
134 |
+
if(apply_filters( 'wpcf7c_input_error_scroll', $result )) {
|
135 |
+
if(!isset($items["onSubmit"]) || $items["onSubmit"] == null) {
|
136 |
+
$items["onSubmit"] = array("wpcf7c_scroll('" . $_POST['_wpcf7_unit_tag'] . "');");
|
137 |
+
} else {
|
138 |
+
$items["onSubmit"][] = "wpcf7c_scroll('" . $_POST['_wpcf7_unit_tag'] . "');";
|
139 |
+
}
|
140 |
+
}
|
141 |
}
|
142 |
|
143 |
return $items;
|
174 |
|
175 |
function wpcf7c_ajax_json_echo_step2($items, $result) {
|
176 |
//eyeta_log("wpcf7c_ajax_json_echo_step1");
|
177 |
+
$flag = false;
|
178 |
+
if(WPCF7_VERSION >= 3.9) {
|
179 |
+
$flag = $items['mailSent'];
|
180 |
+
} else {
|
181 |
+
$flag = $result['mail_sent'];
|
182 |
+
}
|
183 |
+
|
184 |
+
if($flag) {
|
185 |
if(!isset($items["onSubmit"]) || $items["onSubmit"] == null) {
|
186 |
$items["onSubmit"] = array("wpcf7c_step2('" . $_POST['_wpcf7_unit_tag'] . "');");
|
187 |
} else {
|
includes/js/scripts.js
CHANGED
@@ -73,12 +73,8 @@ var wpcf7c_to_step1 = function(parent, scroll){
|
|
73 |
|
74 |
// スムーズスクロール
|
75 |
if(scroll) {
|
76 |
-
|
77 |
-
|
78 |
-
if(jQuery('.wpcf7c-anchor').size() != 0) {
|
79 |
-
position = jQuery('.wpcf7c-anchor').offset().top;
|
80 |
-
}
|
81 |
-
jQuery("html, body").animate({scrollTop:position}, speed, "swing");
|
82 |
}
|
83 |
|
84 |
}
|
@@ -98,6 +94,12 @@ var wpcf7c_step1 = function(unit_tag){
|
|
98 |
responseOutput.addClass("wpcf7c-force-hide");
|
99 |
|
100 |
// 確認画面表示
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
parent.find("textarea").attr("readonly", true).addClass("wpcf7c-conf");
|
102 |
parent.find("select").each(function(){
|
103 |
jQuery(this).attr("readonly", true).attr("disabled", true).addClass("wpcf7c-conf");
|
@@ -131,7 +133,7 @@ var wpcf7c_step1 = function(unit_tag){
|
|
131 |
|
132 |
break;
|
133 |
default:
|
134 |
-
jQuery(this).attr("readonly", true).
|
135 |
jQuery(this).after(
|
136 |
jQuery('<input type="hidden" />').attr("name", jQuery(this).attr("name")).val(jQuery(this).val()).addClass("wpcf7c-conf-hidden")
|
137 |
);
|
@@ -149,13 +151,24 @@ var wpcf7c_step1 = function(unit_tag){
|
|
149 |
parent.find("input[name=_wpcf7c]").val("step2");
|
150 |
|
151 |
// スムーズスクロール
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
var speed = 1000;
|
153 |
var position = parent.offset().top;
|
154 |
if(jQuery('.wpcf7c-anchor').size() != 0) {
|
155 |
position = jQuery('.wpcf7c-anchor').offset().top;
|
156 |
}
|
157 |
jQuery("html, body").animate({scrollTop:position}, speed, "swing");
|
158 |
-
|
159 |
}
|
160 |
});
|
161 |
}
|
73 |
|
74 |
// スムーズスクロール
|
75 |
if(scroll) {
|
76 |
+
// スムーズスクロール
|
77 |
+
setTimeout(function() { wpcf7c_scroll(parent.attr("name")) }, 100);
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
}
|
94 |
responseOutput.addClass("wpcf7c-force-hide");
|
95 |
|
96 |
// 確認画面表示
|
97 |
+
// テキストエリアを伸ばす
|
98 |
+
parent.find("textarea").each(function(){
|
99 |
+
if(this.scrollHeight > this.offsetHeight){
|
100 |
+
this.style.height = (this.scrollHeight + 10) + 'px';
|
101 |
+
}
|
102 |
+
});
|
103 |
parent.find("textarea").attr("readonly", true).addClass("wpcf7c-conf");
|
104 |
parent.find("select").each(function(){
|
105 |
jQuery(this).attr("readonly", true).attr("disabled", true).addClass("wpcf7c-conf");
|
133 |
|
134 |
break;
|
135 |
default:
|
136 |
+
jQuery(this).attr("readonly", true).addClass("wpcf7c-conf");
|
137 |
jQuery(this).after(
|
138 |
jQuery('<input type="hidden" />').attr("name", jQuery(this).attr("name")).val(jQuery(this).val()).addClass("wpcf7c-conf-hidden")
|
139 |
);
|
151 |
parent.find("input[name=_wpcf7c]").val("step2");
|
152 |
|
153 |
// スムーズスクロール
|
154 |
+
setTimeout(function() { wpcf7c_scroll(unit_tag) }, 100);
|
155 |
+
|
156 |
+
|
157 |
+
}
|
158 |
+
});
|
159 |
+
}
|
160 |
+
|
161 |
+
var wpcf7c_scroll = function(unit_tag) {
|
162 |
+
// エラーの時などにアンカーまでスクロール
|
163 |
+
jQuery(jQuery.find("input[name=_wpcf7_unit_tag]")).each(function(){
|
164 |
+
if(jQuery(this).val() == unit_tag) {
|
165 |
+
var parent = jQuery(this).parents("form");
|
166 |
var speed = 1000;
|
167 |
var position = parent.offset().top;
|
168 |
if(jQuery('.wpcf7c-anchor').size() != 0) {
|
169 |
position = jQuery('.wpcf7c-anchor').offset().top;
|
170 |
}
|
171 |
jQuery("html, body").animate({scrollTop:position}, speed, "swing");
|
|
|
172 |
}
|
173 |
});
|
174 |
}
|
modules/back.php
CHANGED
@@ -50,7 +50,7 @@ function wpcf7c_add_tag_generator_back() {
|
|
50 |
'wpcf7-tg-pane-back', 'wpcf7c_tg_pane_back', array( 'nameless' => 1 ) );
|
51 |
}
|
52 |
|
53 |
-
function wpcf7c_tg_pane_back(
|
54 |
?>
|
55 |
<div id="wpcf7-tg-pane-back" class="hidden">
|
56 |
<form action="">
|
50 |
'wpcf7-tg-pane-back', 'wpcf7c_tg_pane_back', array( 'nameless' => 1 ) );
|
51 |
}
|
52 |
|
53 |
+
function wpcf7c_tg_pane_back( $contact_form ) {
|
54 |
?>
|
55 |
<div id="wpcf7-tg-pane-back" class="hidden">
|
56 |
<form action="">
|
modules/confirm.php
CHANGED
@@ -50,7 +50,7 @@ function wpcf7c_add_tag_generator_confirm() {
|
|
50 |
'wpcf7-tg-pane-confirm', 'wpcf7c_tg_pane_confirm', array( 'nameless' => 1 ) );
|
51 |
}
|
52 |
|
53 |
-
function wpcf7c_tg_pane_confirm(
|
54 |
?>
|
55 |
<div id="wpcf7-tg-pane-confirm" class="hidden">
|
56 |
<form action="">
|
50 |
'wpcf7-tg-pane-confirm', 'wpcf7c_tg_pane_confirm', array( 'nameless' => 1 ) );
|
51 |
}
|
52 |
|
53 |
+
function wpcf7c_tg_pane_confirm( $contact_form ) {
|
54 |
?>
|
55 |
<div id="wpcf7-tg-pane-confirm" class="hidden">
|
56 |
<form action="">
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link:
|
|
4 |
Tags: contact, form, contact form
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 3.9.1
|
7 |
-
Stable tag: 1.3.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -64,8 +64,18 @@ An answer to that question.
|
|
64 |
1.3.8.12
|
65 |
Contact Form DBプラグインで確認ボタンクリック時に記録されてしまう問題を修正
|
66 |
|
67 |
-
== Upgrade notice ==
|
68 |
1.3.8.13
|
69 |
「on_confirm」オプションを追加、確認画面表示時に独自のJavascriptを追加できるようにしました。
|
70 |
編集に戻る際は、ボタンに直接イベントをつけて下さい。
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
Tags: contact, form, contact form
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 3.9.1
|
7 |
+
Stable tag: 1.3.9.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
64 |
1.3.8.12
|
65 |
Contact Form DBプラグインで確認ボタンクリック時に記録されてしまう問題を修正
|
66 |
|
|
|
67 |
1.3.8.13
|
68 |
「on_confirm」オプションを追加、確認画面表示時に独自のJavascriptを追加できるようにしました。
|
69 |
編集に戻る際は、ボタンに直接イベントをつけて下さい。
|
70 |
|
71 |
+
== Upgrade notice ==
|
72 |
+
1.3.9.1
|
73 |
+
せっかくスクロールアンカーをセットできるので
|
74 |
+
add_filter("wpcf7c_input_error_scroll", '__return_true');
|
75 |
+
とすることで、入力エラーじもアンカーまでスクロールするようにしました。
|
76 |
+
要素の表示非表示を制御するとスクロールが思った場所にいかないのでインターバルを入れました。
|
77 |
+
Contact Form 7 3.9 に(無理矢理ですが)対応しました。
|
78 |
+
input type="text"などについて、disabledは付けずにreadonlyのみにしました。
|
79 |
+
textareaについて、入力内容が縦幅より大きい場合、確認画面で高さを伸ばすようにしました。
|
80 |
+
|
81 |
+
|
settings.php
CHANGED
@@ -7,6 +7,9 @@
|
|
7 |
*
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
10 |
require_once WPCF7C_PLUGIN_DIR . '/includes/functions.php';
|
11 |
require_once WPCF7C_PLUGIN_DIR . '/includes/controller.php';
|
12 |
|
7 |
*
|
8 |
*/
|
9 |
|
10 |
+
global $wpcf7_confflag;
|
11 |
+
$wpcf7_confflag = false;
|
12 |
+
|
13 |
require_once WPCF7C_PLUGIN_DIR . '/includes/functions.php';
|
14 |
require_once WPCF7C_PLUGIN_DIR . '/includes/controller.php';
|
15 |
|