在产品页面元框中获取WooCommerce产品SKU

min*_*ind 2 php wordpress product woocommerce sku

我在WooCommerce的后端有一个自定义的meta框。目前,我已经设置它来显示单个产品页面上的一些数据。

我曾经<?php the_title(); ?>显示过产品的标题,并且曾经<?php the_field('myfield'); ?>显示过ACF字段中的一些内容。

我确实也希望能够在此meta框中显示SKU,但是我尝试过的所有操作都会破坏页面。

我尝试添加<?php echo $product->get_sku(); ?>,它破坏了页面。我尝试了很多其他的东西。

我只需要将广告资源标签上sku的值传递到同一管理页面上的meta框即可。

有人可以这样做吗?谢谢。

Loi*_*tec 5

您可以尝试通过以下方式在常规选项产品页面上插入新的metabox SKU字段:

add_action( 'woocommerce_product_options_general_product_data', 'add_the_sku_to_general_product_field' );
function add_the_sku_to_general_product_field() {
    global $post;

    $product_sku = get_post_meta( $post->ID, '_sku', true );

    echo '<div class="options_group">';

    woocommerce_wp_text_input( array(
        'id'                => '_sku',
        'label'             => __( 'SKU', 'woocommerce' ),
        'placeholder'       => '',
        'description'       => __( 'Enter the SKU', 'woocommerce' )
    ) );

    echo '</div>';

}

// Saving the Custom Admin Field in general tab products pages when submitted
add_action( 'woocommerce_process_product_meta', 'save_the_sku_to_general_product_field' );
function save_the_sku_to_general_product_field( $post_id ){

    $wc_field = $_POST['_sku'];

    if( !empty($wc_field))
        update_post_meta( $post_id, '_sku', esc_attr( $wc_field ) );
}
Run Code Online (Sandbox Code Playgroud)

或者只是显示SKU ...

在此处输入图片说明

使用此代码:

add_action( 'woocommerce_product_options_general_product_data', 'add_the_sku_to_general_product_field' );
function add_the_sku_to_general_product_field() {
    global $post;

    $product_sku = get_post_meta( $post->ID, '_sku', true );

    echo '<div class="options_group">';

    echo '<p class="form-field _sku_product "><label for="_sku_product">SKU: </label><span style="font-size:120%;">'.$product_sku.'</span></p>';

    echo '</div>';

}
Run Code Online (Sandbox Code Playgroud)

因为我不使用您的插件,所以我不保证这应该起作用,但是您应该尝试一下。

该代码在您的活动子主题(或主题)的function.php文件中或任何插件文件中。


参考文献:


min*_*ind 5

谢谢。

您建议它现在在插件内部工作的以下代码部分。

global $post;

$product_sku = get_post_meta( $post->ID, '_sku', true );
Run Code Online (Sandbox Code Playgroud)

当我回显它时,$product_sku它会返回值。