我有以下功能在前端创建新的woocommerce产品。
parse_str($_POST['form_data'], $form_data);
$insertPost = array(
//'ID' => $post_id,
'post_title' => $form_data['post_title'],
'post_status' => $form_data['post_status'],
'post_type' => 'product',
'post_content' => $form_data['post_content']
);
$insert_post = wp_insert_post( $insertPost, true);
update_post_meta( $insert_post, 'hours', $form_data['hours'] );
update_post_meta( $insert_post, 'year', $form_data['year'] );
update_post_meta( $insert_post, '_weight', $form_data['_weight'] );
update_post_meta( $insert_post, '_price', $form_data['_regular_price'] );
update_post_meta( $insert_post, '_regular_price', $form_data['_regular_price'] );
update_post_meta( $insert_post, '_sale_price', $form_data['_sale_price'] );
update_post_meta( $insert_post, '_stock_status', $form_data['_stock_status'] );
$term_taxonomy_ids = wp_set_object_terms( $insert_post, array(15), 'product_cat' );
wp_set_object_terms( $insert_post, 'simple', 'product_type' );
上面的代码正在创建一个新产品,并按预期向其添加所有数据。问题是当使用按价格排序筛选器时,排序并没有真正以正确的方式对新创建的产品进行排序,它只是忽略了它。
搜索后我发现在WooCommerce
那么,我的函数中缺少了什么,使价格排序在没有“重新生成”按钮的情况下工作?
有些自定义的WooCommerce数据库表和缓存数据是过时的代码无法处理的,因此请使用以下方法(使用WC\u Product
方法),如:
parse_str($_POST['form_data'], $form_data);
// Get an empty instance of the WC_Product Object (with the correct product type)
$product = new WC_Product_Simple(); // "simple" product type
$product->set_name($form_data['post_title']);
$product->set_status($form_data['post_status']);
$product->set_description($form_data['post_content']);
if( isset($form_data['post_excerpt']) ) {
$product->set_short_description($form_data['post_excerpt']); // Optional
}
$product->add_meta_data('hours', $form_data['hours']);
$product->add_meta_data('year', $form_data['year']);
$product->set_price($form_data['_regular_price']);
$product->set_regular_price($form_data['_regular_price']);
$product->set_sale_price($form_data['_sale_price']);
$product->set_weight($form_data['_weight']);
$product->set_stock_status($form_data['_stock_status']);
$product->set_category_ids( array(15) );
$product->save(); // Save to database
它现在应该可以使用“按价格排序过滤器”,而无需重新生成产品数据。
相关:使用Woocommerce 3中的CRUD方法以编程方式创建产品
我有一个Woocommerce商店,里面有各种各样的产品。 我要给所有产品打八折,属于产品类别Cuckoo 现在我所要做的就是在我的functions.php中设定一个销售价格 它的做法如下: 如果我在计算后var_dump$sale_price的结果,我会得到正确的答案,但是前端的价格显示会击出正常价格,并将销售价格显示为正常价格。 是否有一个钩子/过滤器可以用来实现这一点? 我还尝试通过以下方
我试图以编程方式创建一个订单。使用非常简单: 这符合预期,并且为ID为100的简单产品创建了正确数量的订单。 然而,如果我尝试用一个变体来实现这一点,它的行为似乎并不正确。经过多次尝试和错误,我以这种方式完成了工作: 然而,尽管它确实创建了具有正确产品和正确变化ID的订单,订单的总数总是0(巧合的是,这是第一个变化的价格)。 最初我尝试的是
如何从插件为WooCommerce创建属性?我只发现: 从这个问题 但这种方法需要某些产品的id。我需要生成一些未附加到任何产品的属性。
我有一个WS,它返回非常基本的产品数据:代码、价格和图像。我需要用这些基本数据以编程方式创建Hybris产品,然后进行同步,以便在店面上看到这些产品。 创建具有这些基本信息的产品的步骤是什么?有OOTB服务吗?
我想用PHP代码以编程方式创建一个新的Woocommerce产品,我已经用Woocommerce 3 CRUD方法进行了尝试: 但我得到了这个错误: 22-Oct-2018 20:25:19UTC]PHP致命错误:未捕获错误:类'WC_Product_Simple'未找到 /home/u1771p590/domains/famyfuerza.com/public_html/store/wp-con
在WooCommerce中,我试图找到一种类似于方法或的方法,例如,设置产品类型,如简单或变化。 实际上,我使用的是对象如下: 如果用户选中“简单产品”或“可变产品”,我如何设置产品类型? 任何帮助都很感激。