我有一个插件,可以通过编程方式成功地为Woocommerce添加自定义产品。问题是,当用户第一次导航到产品页面时,没有“添加到购物车”按钮可见。我可以通过编辑产品然后保存它来手动解决这个问题,而无需接触任何其他内容。我不知道为什么会这样,我想以编程方式解决它。
如何以编程方式显示“添加到购物车”按钮?
在'init'上解雇:
public function createRaffleProduct(){
global $CRG_productName;
global $CRG_regularPrice;
$post = array(
'post_author' => $user_id,
'post_content' => '',
'post_status' => "publish",
'post_title' => $CRG_productName,
'post_parent' => '',
'post_type' => "product",
);
//Create post:
$post_id = wp_insert_post( $post, $wp_error );
update_post_meta( $post_id, '_visibility', 'visible' );
update_post_meta( $post_id, '_stock_status', 'instock');
update_post_meta( $post_id, 'total_sales', '0');
update_post_meta( $post_id, '_downloadable', 'no');
update_post_meta( $post_id, '_virtual', 'yes');
update_post_meta( $post_id, '_regular_price', $CRG_regularPrice);
update_post_meta( $post_id, '_sale_price', "1" );
}
答案 0 :(得分:2)
以编程方式创建产品时,您必须确保使用与save_post
上生成的WooCommerce相同的元数据。
您的代码中缺少_price
元键。如果没有_price
,则产品不是purchasable
,并且不会显示添加到购物车按钮。