iframe 的 Woocommerce 产品自定义字段无法正常工作

Woocommerce Product Custom Field for iframe not work correctly

我通过以下代码为 woocommerce 产品创建了一个自定义字段。我想将此自定义字段用于存储 iframe 代码并将其显示在产品单页中。 但是数据库中存储的数据和输出代码有错误并且与 xustom 字段文本输入中输入的代码不同

我的代码:

add_action('woocommerce_product_options_sku', 'add_product_video_field' );
function add_product_video_field(){

    woocommerce_wp_text_input( array(
        'id'          => '_product_video_field',
        'label'       => __('video iframe code', 'woocommerce' ),
        'placeholder' => __('video iframe code', 'woocommerce' ),
        'desc_tip'    => true,
        'description' => __('video iframe code.', 'woocommerce' ),
    ) );
}

add_action('woocommerce_admin_process_product_object', 'save_product_video_field', 10, 1 );
function save_product_video_field( $product ){
    if( isset($_POST['_product_video_field']) )
        $product->update_meta_data( '_product_video_field', esc_attr($_POST['_product_video_field']) );
}

我在输入文本字段中输入的代码:

<style>.h_iframe-aparat_embed_frame{position:relative;}.h_iframe-aparat_embed_frame .ratio{display:block;width:100%;height:auto;}.h_iframe-aparat_embed_frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;}</style><div class="h_iframe-aparat_embed_frame"><span style="display: block;padding-top: 57%"></span><iframe src="https://www.aparat.com/video/video/embed/videohash/AtP2j/vt/frame" title="بِیبی میخواد آپاراتِ کودک" allowFullScreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe></div>

我的自定义字段输出并存储在数据库中:

<style>.h_iframe-aparat_embed_frame{position:relative;}.h_iframe-aparat_embed_frame .ratio{display:block;width:100%;height:auto;}.h_iframe-aparat_embed_frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;}</style><div class=\"h_iframe-aparat_embed_frame\"><span style=\"display: block;padding-top: 57%\"></span><iframe src=\"https://www.aparat.com/video/video/embed/videohash/AtP2j/vt/frame\" title=\"بِیبی میخواد آپاراتِ کودک\" allowFullScreen=\"true\" webkitallowfullscreen=\"true\" mozallowfullscreen=\"true\"></iframe></div>

我如何更改它以使用 ifram 或任何脚本? 谢谢

您可以使用以下代码解决此问题,

<?php $get_data_fromdb =  get_post_meta( YOUR_PRODUCT_ID_HERE, '_product_video_field' ); 
     echo htmlspecialchars_decode(stripslashes($get_data_fromdb[0])); 
>

htmlspecialchars_decode 此函数会将代码视为 html.