我正在使用WC Vendors Pro,它使您可以从前端添加/编辑WooCommerce产品。现在,我想在产品编辑表单的标题后显示产品名称和一个元字段(SKU)。
我添加了一个自定义函数,该函数以正确的方式显示虚拟数据:
add_action( 'wcvendors_before_product_form', 'vendor_dashboard_product_title_after_headline_product_form', 0 );
function vendor_dashboard_product_title_after_headline_product_form(){
echo '<h3>Name</h3>';
echo '<p>SKU</p>';
}
我的问题是,我不知道如何获取正在编辑的产品的ID。
我尝试使用以下内容:
$product = wc_get_product( $product_id );
$product->get_name();
但是显示错误。我猜$product
不起作用,因为表单中没有$product_id
(表单是普通页面)。
所以我查看了模板文件,它在开头显示了以下代码:
$title = ( is_numeric( $object_id ) ) ? __( 'Save Changes', 'wcvendors-pro' ) : __( 'Add Product', 'wcvendors-pro' );
$page_title = ( is_numeric( $object_id ) ) ? __( 'Edit Product', 'wcvendors-pro' ) : __( 'Add Product', 'wcvendors-pro' );
$product = ( is_numeric( $object_id ) ) ? wc_get_product( $object_id ) : null;
$post = ( is_numeric( $object_id ) ) ? get_post( $object_id ) : null;
// Get basic information for the product
$product_title = ( isset( $product ) && null !== $product ) ? $product->get_title() : '';
$product_description = ( isset( $product ) && null !== $product ) ? $post->post_content : '';
$product_short_description = ( isset( $product ) && null !== $product ) ? $post->post_excerpt : '';
$post_status = ( isset( $product ) && null !== $product ) ? $post->post_status : '';
我尝试使用$object_id
。但它是空的。
即使我将它添加到这样的函数中:
function vendor_dashboard_product_title_after_headline_product_form($object_id){
也许这是错误的方式?!
有人知道我如何从正在编辑的产品中获得产品ID? 如果我有ID,则可以让其余的工作。
编辑:
如果我使用另一个钩子,则可以使用$object_id
。这有效:
add_action( 'wcv_before_general_tab', 'vendor_dashboard_product_title_after_headline_product_form', 0 );
function vendor_dashboard_product_title_after_headline_product_form($object_id){
我的问题是,我不想使用钩子wcv_before_general_tab
,因为它在错误的位置。