Создал пользовательский тег [img] для contact form 7, чтобы отобразить изображение текущего поста/товара в форме. Мне удалось вывести изображение товара в форме обратной связи которую я создал, однако я не могу передать это изображение в письме. Я пробовал разные варианты:
- Формировал url типа uploads/2023/.../.jpg (так как в документации сказано, что в целях безопасности, все, что находится за приделами /wp-content/ не будет считаться.
- Использовал тег [img] в области для вложенных файлов и в теле письма.
- Задавал имя [img img-name] и использовал в области для вложенных файлов и в теле письма.
Ничего не помогло.
Вот, собственно, моя функция:
/**
* Return product image for CF7 tag.
*
* @param array $tag
* @return string
*/
function custom_add_form_tag_img_handler($tag) {
global $post; // Use $post to get the current post object.
// Check if we're on a WooCommerce product page.
if (function_exists('is_product') && is_product()) {
$product_id = get_the_ID(); // Get the current post (product) ID.
$product = wc_get_product($product_id); // Get the product object.
$image_url = get_the_post_thumbnail_url($product_id);
if ($image_url) {
return '<img src="' . esc_url($image_url) . '" alt="Изображение товара" class="ar-form__img">';
}
// if ($image_url) {
// return ltrim(wp_make_link_relative(esc_url($image_url)), '/wp-content/' );
// }
}
return '';
}
/**
* Hook to add custom 'img' tag to CF7.
* Usage in CF7: [img]
*/
function custom_add_form_tag_img() {
wpcf7_add_form_tag('img', 'custom_add_form_tag_img_handler', array( 'name-attr' => true ));
}
add_action('wpcf7_init', 'custom_add_form_tag_img');