gpt4 book ai didi

php - 在 WooCommerce 中为产品添加自定义设置选项卡,允许显示 iframe

转载 作者:行者123 更新时间:2023-12-04 10:28:50 24 4
gpt4 key购买 nike

我正在创建一个插件,它将改变 woocommerce 中画廊的外观。也就是说,将打开一个 iframe 而不是画廊。这适用于所有产品。

add_filter( 'woocommerce_single_product_image_thumbnail_html', 'product_image');

function product_image(){
$product = wc_get_product();
$product_id = $product->get_id();
$threedLink = 'http://sameurl/' .$product_id ;
$content .= '<iframe src='.$threedLink.' width="99%" height="300px"></iframe>';
return $content;

}

但我需要它不是适用于所有产品,而是适用于选定的产品。即在产品的整个加载过程中,需要打勾,管理员必须同意显示iframe。我在产品加载面板中创建了一个选项卡
function wk_custom_product_tab( $default_tabs ) {
$default_tabs['custom_tab'] = array(
'label' => __( 'Custom Tab', 'domain' ),
'target' => 'wk_custom_tab_data',
'priority' => 60,
'class' => array()
);
return $default_tabs;
}

add_filter( 'woocommerce_product_data_tabs', 'wk_custom_product_tab', 10, 1 );

add_action( 'woocommerce_product_data_panels', 'wk_custom_tab_data' );

function wk_custom_tab_data() {
echo '<div id="wk_custom_tab_data" class="panel woocommerce_options_panel">ddddd</div>';
}

如何添加复选标记而不是 ddddd 并将其与插件下载连接?

最佳答案

  • 添加自定义产品选项卡
  • 将内容添加到产品选项卡(复选框)
  • 保存复选框
  • 获取值,"is"或“否”,如果是,则显示 iframe

  • /**
    * Add custom product setting tab.
    */
    function filter_woocommerce_product_data_tabs( $default_tabs ) {
    $default_tabs['custom_tab'] = array(
    'label' => __( 'Custom Tab', 'domain' ),
    'target' => 'wk_custom_tab_data',
    'priority' => 60,
    'class' => array()
    );
    return $default_tabs;
    }
    add_filter( 'woocommerce_product_data_tabs', 'filter_woocommerce_product_data_tabs', 10, 1 );

    /**
    * Contents custom product setting tab.
    */
    function action_woocommerce_product_data_panels() {
    global $post;

    // Note the 'id' attribute needs to match the 'target' parameter set above
    echo '<div id="wk_custom_tab_data" class="panel woocommerce_options_panel">';

    // Add checkbox
    woocommerce_wp_checkbox( array(
    'id' => '_allow_iframe',
    'label' => __( 'Allow iFrame', 'woocommerce' ),
    ) );

    echo '</div>';
    }
    add_action( 'woocommerce_product_data_panels', 'action_woocommerce_product_data_panels', 10, 0 );

    /**
    * Save the checkbox.
    */
    function action_woocommerce_admin_process_product_object( $product ) {
    // Isset, yes or no
    $allow_iframe = isset( $_POST['_allow_iframe'] ) ? 'yes' : 'no';

    // Update meta
    $product->update_meta_data( '_allow_iframe', $allow_iframe );
    }
    add_action( 'woocommerce_admin_process_product_object', 'action_woocommerce_admin_process_product_object', 10, 1 );

    /**
    * Display iframe if checkbox = 'yes'
    */
    function filter_woocommerce_single_product_image_thumbnail_html( $html, $post_thumbnail_id ) {
    // Get the global product object
    global $product;

    // Is a WC product
    if ( is_a( $product, 'WC_Product' ) ) {
    // Get meta
    $value = $product->get_meta( '_allow_iframe' );

    // value = 'yes'
    if ( $value == 'yes' ) {
    // Get product id
    $product_id = $product->get_id();

    $threed_link = 'http://myurl/' . $product_id;
    $html .= '<iframe src=' . $threed_link . ' width="99%" height="300px"></iframe>';
    }
    }

    return $html;
    }
    add_filter( 'woocommerce_single_product_image_thumbnail_html', 'filter_woocommerce_single_product_image_thumbnail_html', 10, 2 );

    关于php - 在 WooCommerce 中为产品添加自定义设置选项卡,允许显示 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60505776/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com