Контактная форма 7 form_tag (шорткод) не отображает HTML в теле письма - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу поделиться таблицей корзины WooCommerce по электронной почте, используя контактную форму 7. Я добавил шорткод [cart], используя wpcf7_add_form_tag, который отображает содержимое корзины (таблица) на странице формы wpcf7. При отправке мне нужно отправить содержимое корзины внутри тегов таблицы на почту, но я получаю содержимое корзины с тегами таблицы по электронной почте. Ниже приведен мой полный код, который поможет вам узнать, как я получаю содержимое корзины в шорткоде и не отображаемые теги таблиц в электронной почте.

определение cart шорткод

add_action('wpcf7_init', 'custom_add_form_tag_posts');
function custom_add_form_tag_posts() {
    wpcf7_add_form_tag('cart', 'showcartnow');
}

назначить содержимое корзины в шорткоде [корзина]

function showcartnow($tag) { 
$mycart= "";
$mycart.= '<table cellspacing="0">';
    $mycart.= '<thead>';
        $mycart.= '<tr>';
            $mycart.= '<th>&nbsp;</th>';
            $mycart.= '<th>Product</th>';
            $mycart.= '<th>Price</th>';
            $mycart.= '<th>Quantity</th>';
            $mycart.= '<th>Total</th>';
        $mycart.= '</tr>';
    $mycart.= '</thead>';
    $mycart.= '<tbody>';    
        global $woocommerce;
        $items = $woocommerce->cart->get_cart();
        foreach($items as $item => $values) {           
            $_product =  wc_get_product( $values['data']->get_id() );
            $getProductDetail = wc_get_product( $values['product_id'] );
            $price = get_post_meta($values['product_id'] , '_price', true);
            $regular_price = get_post_meta($values['product_id'] , '_regular_price', true);
        $mycart.= '<tr>';
            $mycart.= '<td>'.$getProductDetail->get_image().'</td>';
            $mycart.= '<td>'.$_product->get_title().'</td>';
            $mycart.= '<td>'.$price.'</td>';
            $mycart.= '<td>'.$values['quantity'].'</td>';
            $mycart.= '<td>'.$values["line_subtotal"].'</td>';
        $mycart.= '</tr>';
        } 
    $mycart.= '</tbody>';
$mycart.= '</table>';
    return $mycart;
}

получение содержимого корзины по почте

add_filter("wpcf7_posted_data", function ($posted_data) {

    $result = showcartnow();
    $posted_data["cart"] = $result;
    return $posted_data;

});

это то, что я получаю в корзину .. HTML без рендеринга (с табличными тегами)

<table cellspacing="0"><thead><tr><th> </th><th>Product</th><th>Price</th><th>Quantity</th><th>Total</th></tr></thead><tbody><tr><td><img src="https://designbox.com.pk/wp-content/plugins/woocommerce/assets/images/placeholder.png" alt="Placeholder" width="250" height="250" /></td><td>Blushing Beauty Camellia</td><td>14.99</td><td>2</td><td>29.98</td></tr></tbody></table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...