문의 양식 7에 get request를 사용하여 필드 값 설정
get request로 필드 값을 설정하고 싶다.
example.com/subscribe/ ? email = example.com/subscribe/sfs
그러나 양식이 있는 페이지를 로드하면 양식이 표시되지 않습니다.왜 보여주지 못했는지 알겠어.양식 자체가 get request를 제출할 수도 있기 때문입니다.필드 값을 설정할 수 있도록 이 플러그인도 설치했지만 설정되지 않았습니다.
이게 내가 가진 거야
<p>Uw naam (verplicht)<br />
[text* input-name] </p>
<p>Uw email (verplicht)<br />
[dynamictext dynamicname "CF7_GET key='email'"] </p>
<p>Onderwerp<br />
[text your-subject] </p>
<p>Uw bericht<br />
[textarea your-message] </p>
<p>[submit "Verzenden"]</p>
내 페이지:
<?php echo do_shortcode('[contact-form-7 id="1062" title="Contactformulier 1"]'); ?>
다른 플러그인을 사용해도 상관없습니다.제 요구에 맞는 것이 있으면 가르쳐 주세요.
[text* your-name default:get]
은 " " 에서 가져옵니다.GET
성함을 밝히다은, 「 」에 액세스 해 주세요.URL
「 」 「 」 、 「 」 、 「 」
http://example.com/contact/? your-name=John+Smith
단, 1개의 폼태그에 2개 이상의 기본옵션이 있는 경우는 어떻게 해야 합니까?다음 폼태그의 경우를 생각해 보겠습니다.
[text* your-name default:get default:post_meta "Your Name"]
방금 당신이 링크한 플러그인을 설치하고 테스트했습니다.플러그인은 연락처 양식 7의 필드에 대한 GET 변수를 가져올 수 없습니다.플러그인은 두 가지 작업을 수행합니다.
- $_GET 변수를 잡고 이 변수를 사용하여 숨겨진 필드를 만듭니다.
- 페이지에 변수를 표시합니다(필드가 아닌 텍스트 그대로).
이 예에서 사용하고 있는 쇼트코드는 이 http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/ 플러그인에서 사용하는 것입니다.그 플러그인도 다운받아 테스트해 봤는데, 정상적으로 동작하고 있는 것 같습니다.
여기 제가 예시를 만든 페이지가 있습니다.http://jtwebb.com/stackoverflow-question/?someemail=asdf에서 동적 텍스트 변환 플러그인과 함께 작동하는지 확인할 수 있습니다.
업데이트: 제 연락처 양식 7 코드입니다.
<p>Your Name (required)<br />
[text* your-name] </p>
<p>[showparam someemail] <-- this is the shortcode of show param, just text no field</p>
<p>[getparam someemail] If you inspect this you'll see a hidden get field with the value of 'someemail' in it.</p>
<p>Your Email (required)<br />
[dynamictext* dynamictext-380 "CF7_GET key='someemail'"]<br>This field was created with <a href="http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/">http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/</a></p>
<p>Subject<br />
[text your-subject] </p>
<p>Your Message<br />
[textarea your-message] </p>
<p>[submit "Send"]</p>
양식 필드에서 먼저 고유한 텍스트를 설정한 후 후 후크를 사용하여 원하는 값으로 바꿀 수 있습니다.그러면 플러그인이 필요하지 않습니다.
예.폼 코드:
<p>Phone<br />
[text phone "PHONE_VALUE"] </p>
기능하고 있습니다.php:
add_filter( 'wpcf7_form_elements', function( $form ) {
$form = str_replace( 'PHONE_VALUE', $_GET['phone'], $form );
return $form;
} );
URL:
example.com/page?phone=111111
이 질문은 이미 답변이 끝난 것으로 알고 있습니다만, 플러그인이 필요 없는 솔루션을 찾고 있는 분에게는, 이하의 방법을 선택했습니다.
먼저 Wordpress 대시보드를 통해 플러그인 내에서 폼을 만들었습니다.URL에서 파라미터를 유지하고 싶은 필드를 추가하여 ID를 할당했습니다.
[text page-name class:form-control id:source minlength:2 maxlength:80]
다음으로 다음과 같이 폼에 파라미터를 전달하는 링크를 추가했습니다.
<a href='http://mycoolwebsite.com/contact?id=homepage'>Contact Us</a>
그 후 몇 가지 사용Javascript
그리고.JQuery
이해하다id
파라미터는 URL에서 취득하여 폼의 내 입력값으로 설정합니다.(The parameter 。getParameterByName(name,url)
함수는 다음 답변에서 얻었습니다.JavaScript에서 쿼리 문자열 값을 가져오려면 어떻게 해야 합니까?
function getParameterByName(name, url) {
if (!url) url = window.location.href;
url = url.toLowerCase();
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
var param = getParameterByName('id');
jQuery('#source').hide();
jQuery('#source').prop('disabled', true);
jQuery('#source').attr('value', param);
jQuery('#source').val(param);
또한 입력 필드가 표시되지 않도록 숨기고 비활성화합니다(쉽게 수정되지 않음).입력 필드도 숨깁니다.CSS
#source{visibility:hidden}
이렇게 하면 사이트 내 어디에서나 양식에 링크하여 발신자의 출처를 추가하여 수신한 이메일에 넣을 수 있습니다.
이 방법에는 문제가 없으며 플러그인을 사용할 필요가 없습니다.Javascript에 의존하는 것은 이상적이지 않지만 사이트상의 많은 플러그인에 사용하는 것도 이상적이지 않습니다.플러그인은 매우 빠르게 구식이 되어 서로 충돌하는 경우가 많기 때문입니다.
이것이 대안을 찾는 사람들에게 도움이 되기를 바랍니다.개선방안에 대한 의견을 듣고 싶기 때문에 이에 대한 사람들의 의견을 듣고 싶습니다.
이 조항에 따르면
값을 선택 목록으로 전송하려면 매개 변수를 추가하면 쉽게 수행할 수 있습니다.default:get
필드 코드:
[select* the-recipient default:get "Employee One|employeeone@yourdomain.com" "Employee Two|employeetwo@yourdomain.com" "Employee Three|employeethree@yourdomain.com"]
그런 다음 다음과 같이 GET 요청으로 파라미터를 전송합니다.
http://yourdomain.com/contact/?the-recipient=Employee%20Two
각 양식 요소에 대한 특정 로직이 있는 경우wpcf7_form_tag
후크
// define the wpcf7_form_tag callback
function filter_wpcf7_form_tag( $scanned_tag, $replace ) {
// set default option for your field
if($scanned_tag['name'] == 'my-field' && isset($_GET['my-param'])){
$scanned_tag['options'][] = sprintf('default:%s', $_GET['my-param']);
}
// repeat operation for another field
return $scanned_tag;
};
// add the filter
add_filter( 'wpcf7_form_tag', 'filter_wpcf7_form_tag', 10, 2 );
내 경우 [default:get]가 작동하지 않아 다음 절차를 따릅니다.
- url = "http://www.example.se/package-quote/ ? package = Basic "의 [text* package id : package read only ] 。
- 바닥글에 jquery 스크립트를 작성합니다.php
http://toihid.com/contact-form-7-set-field-value-with-get-request/
언급URL : https://stackoverflow.com/questions/24060547/contact-form-7-set-field-value-with-get-request
'programing' 카테고리의 다른 글
파일 이름이 대/소문자가 같은 상대 경로에서 이미 포함된 파일 이름과 다릅니다. (0) | 2023.03.18 |
---|---|
맥락.Context에 의해 전달된 값에 액세스하기 위한 Consumer vs useContext().프로바이더 (0) | 2023.03.18 |
한 줄에 여러 값 인쇄 (0) | 2023.03.13 |
지시어 정의의 '바꾸기'는 어떻게 사용합니까? (0) | 2023.03.13 |
모듈을 찾을 수 없습니다.'swiper/react'를 해결할 수 없습니다. (0) | 2023.03.13 |