2012-11-01 76 views
6

Biểu mẫu liên hệ 7 có một số mã ngắn, như [_date] để nhận ngày đến ngày. Nhưng tôi muốn hiển thị ngày một tuần kể từ bây giờ.Mẫu liên hệ Wordpress 7 mã ngắn tùy chỉnh

Vì vậy, tôi cần phải tạo một shortcode tùy chỉnh để liên hệ với biểu mẫu 7 có thể nói [next_week] và trong email recived ngày chính xác được hiển thị.

Ở đâu và làm cách nào để tạo mã ngắn tùy chỉnh thành Biểu mẫu liên hệ 7?

Trả lời

13

Thêm dòng sau vào functions.php của bạn

wpcf7_add_shortcode('custom_date', 'wpcf7_custom_date_shortcode_handler', true); 

function wpcf7_custom_date_shortcode_handler($tag) { 
    if (!is_array($tag)) return ''; 

    $name = $tag['name']; 
    if (empty($name)) return ''; 

    $next_week = date('Y-m-d', time() + (60*60*24*7)); 
    $html = '<input type="hidden" name="' . $name . '" value="' . $next_week . '" />'; 
    return $html; 
} 

Bây giờ trong " Mẫu "trường trong giao diện CF7 loại [custom_date next_week]

Bây giờ bạn có thể sử dụng [next_week] trong mớ hỗn độn tuổi tác.

+1

Tôi sử dụng phiên bản đơn giản hơn cho các nhu cầu của mình: 'wpcf7_add_shortcode ('input_name', hàm ($ tag) {return ' '}); ' – vladkras

0

Tôi chưa từng làm, nhưng tôi nghĩ rằng các mã ngắn được quản lý bằng chính wordpress (ngay cả đối với các plugin như CF7).

Một ví dụ để tạo ra một shortcode đơn giản là:

//[foobar] 
function foobar_func($atts){ 
return "foo and bar"; 
} 
add_shortcode('foobar', 'foobar_func'); 

Đặt trong functions.php.

Để biết thêm thông tin: http://codex.wordpress.org/Shortcode_API

Hoặc bạn có thể sử dụng một plugin như thế này mà làm việc: http://wordpress.org/extend/plugins/shortbus/

+1

CF7 in [foobar], bài viết và các trang in "foo và bar". Vì vậy, nó đã không hoạt động. – halliewuud

+0

Điều này hoạt động tốt khi bạn muốn sử dụng shortcode trong biểu mẫu nhưng nó không hoạt động trong email gửi đi. Câu trả lời của tôi cho giải pháp chính xác – halliewuud

0

Điều này hơi muộn đối với bên phản hồi, nhưng tôi tiếp tục nhìn thấy bài đăng này khi tôi muốn thêm mã ngắn tùy chỉnh vào biểu mẫu và nội dung thư của tôi. Tôi muốn có thể chèn mã ngắn mà không cần đăng ký chúng đặc biệt trong CF7 và thường chỉ trong nội dung thư (một cái gì đó CF7 dường như không thể làm).

Sau đây là cách cuối cùng tôi đã làm điều đó:

// Allow custom shortcodes in CF7 HTML form 
add_filter('wpcf7_form_elements', 'dacrosby_do_shortcodes_wpcf7_form'); 
function dacrosby_do_shortcodes_wpcf7_form($form) { 
    $form = do_shortcode($form); 
    return $form; 
} 

// Allow custom shortcodes in CF7 mailed message body 
add_filter('wpcf7_mail_components', 'dacrosby_do_shortcodes_wpcf7_mail_body', 10, 2); 
function dacrosby_do_shortcodes_wpcf7_mail_body($components, $number) { 
    $components['body'] = do_shortcode($components['body']); 
    return $components; 
}; 

// Add shortcode normally as per WordPress API 
add_shortcode('my_code', 'my_code_callback'); 
function my_code_callback($atts){ 
    extract(shortcode_atts(array(
     'foo' => 'bar' 
    ), $atts)); 

    // do things 
    return $foo; 
} 
Các vấn đề liên quan