2

WooCommerce のバックエンドにカスタム メタ ボックスがあります。現在、単一の製品ページからいくつかのデータを表示するようにセットアップしています。

<?php the_title(); ?>商品のタイトルを表示したり、 ACF<?php the_field('myfield'); ?>フィールドのコンテンツを表示したりしました。

このメタボックスにもSKUを表示できるようにしたいのですが、試したすべてがページを壊します。

追加しよう<?php echo $product->get_sku(); ?>としましたが、ページが壊れます。他にもいろいろ試してみました。

インベントリ タブの SKU の値を同じ管理ページのメタ ボックスに渡すだけです。

他の誰かがこれでできますか?ありがとう。

4

4 に答える 4

5

次の方法で、一般的なオプションの製品ページに新しいメタボックス 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 ) );
}

または、SKU を表示するだけで…</p>

ここに画像の説明を入力

このコードで:

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>';

}

私はあなたのプラグインを使用していないため、これが機能することを保証するものではありませんが、試してみてください.

コードは、アクティブな子テーマ (またはテーマ) の function.php ファイルまたは任意のプラグイン ファイルに入ります。


参考文献:

于 2016-10-13T04:01:06.783 に答える
4

ありがとうございました。

コードの次の部分は、プラグイン内で動作することを提案しました。

global $post;

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

エコー$product_skuすると値が返されます。

于 2016-10-13T16:52:57.170 に答える