Ajax更新产品在管理面板(WooCommerce)



你能帮我一下吗,我有任务:我需要编写代码,更新WooCommerce产品(在管理页面上)没有页面重新加载,我想使用ajax。我所做的是:我序列化数据并把它放在objectformdata中。现在我有$_POST['formData']与默认WordPress提交表单的所有数据。

var formData = new FormData();
var formData = $(this).serialize();
$.ajax({
url: ajax_data.ajax_url,
type: 'POST',
data: {
action     : 'save_post',
formData   : formData,
},

但是我需要你的建议,哪些工具使用得更好。我知道woocommerce提供wc_product类。但在我的$_POST['formData']我有下一个输出:

array(91) {
["_wpnonce"]=>
string(10) "d625c90e10"
["_wp_http_referer"]=>
string(38) "/wp-admin/post.php?post=11&action=edit"
["user_ID"]=>
string(1) "1"
["action"]=>
string(8) "editpost"
["originalaction"]=>
string(8) "editpost"
["post_author"]=>
string(1) "1"
["post_type"]=>
string(7) "product"
["original_post_status"]=>
string(7) "publish"
["referredby"]=>
string(61) "http://167.71.45.242:8081/wp-admin/edit.php?post_type=product"
["_wp_original_http_referer"]=>
string(61) "http://167.71.45.242:8081/wp-admin/edit.php?post_type=product"
["post_ID"]=>
string(2) "11"
["meta-box-order-nonce"]=>
string(10) "7165f917f6"
["closedpostboxesnonce"]=>
string(10) "5ebee8cce7"
["original_post_title"]=>
string(32) "Тестовый товар №1"
["post_title"]=>
string(32) "Тестовый товар №1"
["samplepermalinknonce"]=>
string(10) "aa695f62d0"
["content"]=>
string(0) ""
["wp-preview"]=>
string(0) ""
["hidden_post_status"]=>
string(7) "publish"
["post_status"]=>
string(7) "publish"
["hidden_post_password"]=>
string(0) ""
["hidden_post_visibility"]=>
string(6) "public"
["visibility"]=>
string(6) "public"
["post_password"]=>
string(0) ""
["mm"]=>
string(2) "04"
["jj"]=>
string(2) "28"
["aa"]=>
string(4) "2022"
["hh"]=>
string(2) "10"
["mn"]=>
string(2) "58"
["ss"]=>
string(2) "07"
["hidden_mm"]=>
string(2) "04"
["cur_mm"]=>
string(2) "05"
["hidden_jj"]=>
string(2) "28"
["cur_jj"]=>
string(2) "02"
["hidden_aa"]=>
string(4) "2022"
["cur_aa"]=>
string(4) "2022"
["hidden_hh"]=>
string(2) "10"
["cur_hh"]=>
string(2) "12"
["hidden_mn"]=>
string(2) "58"
["cur_mn"]=>
string(2) "36"
["current_visibility"]=>
string(7) "visible"
["current_featured"]=>
string(2) "no"
["_visibility"]=>
string(7) "visible"
["original_publish"]=>
string(16) "Обновить"
["tax_input"]=>
array(2) {
["product_cat"]=>
array(2) {
[0]=>
string(1) "0"
[1]=>
string(2) "15"
}
["product_tag"]=>
string(0) ""
}
["newproduct_cat"]=>
string(46) "Название новой категории"
["newproduct_cat_parent"]=>
string(2) "-1"
["_ajax_nonce-add-product_cat"]=>
string(10) "e9bf3be16e"
["newtag"]=>
array(1) {
["product_tag"]=>
string(0) ""
}
["post_type_nonce"]=>
string(10) "bd08f5b974"
["product_type"]=>
string(8) "frequent"
["created_date_nonce"]=>
string(10) "2211e50c85"
["created_date"]=>
string(10) "2022-04-27"
["_thumbnail_id"]=>
string(2) "-1"
["meta_box_nonce"]=>
string(10) "4aef179cf0"
["test_image"]=>
string(0) ""
["woocommerce_meta_nonce"]=>
string(10) "9e72d885d4"
["product_image_gallery"]=>
string(0) ""
["product-type"]=>
string(6) "simple"
["_product_url"]=>
string(0) ""
["_button_text"]=>
string(0) ""
["_regular_price"]=>
string(4) "1000"
["_sale_price"]=>
string(0) ""
["_sale_price_dates_from"]=>
string(0) ""
["_sale_price_dates_to"]=>
string(0) ""
["_download_limit"]=>
string(0) ""
["_download_expiry"]=>
string(0) ""
["_sku"]=>
string(5) "test1"
["_stock"]=>
string(1) "0"
["_original_stock"]=>
string(1) "0"
["_backorders"]=>
string(2) "no"
["_low_stock_amount"]=>
string(0) ""
["_stock_status"]=>
string(7) "instock"
["_weight"]=>
string(0) ""
["_length"]=>
string(0) ""
["_width"]=>
string(0) ""
["_height"]=>
string(0) ""
["product_shipping_class"]=>
string(2) "-1"
["attribute_taxonomy"]=>
string(0) ""
["_purchase_note"]=>
string(0) ""
["menu_order"]=>
string(1) "0"
["meta"]=>
array(4) {
[31]=>
array(2) {
["key"]=>
string(20) "product_created_date"
["value"]=>
string(10) "2022-04-27"
}
[27]=>
array(2) {
["key"]=>
string(10) "test_image"
["value"]=>
string(0) ""
}
[8]=>
array(2) {
["key"]=>
string(11) "total_sales"
["value"]=>
string(1) "0"
}
[30]=>
array(2) {
["key"]=>
string(15) "type_of_product"
["value"]=>
string(8) "frequent"
}
}
["_ajax_nonce"]=>
string(10) "bf9cefe09d"
["metakeyselect"]=>
string(6) "#NONE#"
["metakeyinput"]=>
string(0) ""
["metavalue"]=>
string(0) ""
["_ajax_nonce-add-meta"]=>
string(10) "0187a6acae"
["post_name"]=>
string(34) "тестовый-товар-№1-2"
["excerpt"]=>
string(0) ""
["add_comment_nonce"]=>
string(10) "8e3ae8767d"
["_ajax_fetch_list_nonce"]=>
string(10) "56a7278515"

我们可以看到为我们提供woocommerce的属性

protected $data = array(
'name'               => '',
'slug'               => '',
'date_created'       => null,
'date_modified'      => null,
'status'             => false,
'featured'           => false,
'catalog_visibility' => 'visible',
'description'        => '',
'short_description'  => '',
'sku'                => '',
'price'              => '',
'regular_price'      => '',
'sale_price'         => '',
'date_on_sale_from'  => null,
'date_on_sale_to'    => null,
'total_sales'        => '0',
'tax_status'         => 'taxable',
'tax_class'          => '',
'manage_stock'       => false,
'stock_quantity'     => null,
'stock_status'       => 'instock',
'backorders'         => 'no',
'low_stock_amount'   => '',
'sold_individually'  => false,
'weight'             => '',
'length'             => '',
'width'              => '',
'height'             => '',
'upsell_ids'         => array(),
'cross_sell_ids'     => array(),
'parent_id'          => 0,
'reviews_allowed'    => true,
'purchase_note'      => '',
'attributes'         => array(),
'default_attributes' => array(),
'menu_order'         => 0,
'post_password'      => '',
'virtual'            => false,
'downloadable'       => false,
'category_ids'       => array(),
'tag_ids'            => array(),
'shipping_class_id'  => 0,
'downloads'          => array(),
'image_id'           => '',
'gallery_image_ids'  => array(),
'download_limit'     => -1,
'download_expiry'    => -1,
'rating_counts'      => array(),
'average_rating'     => 0,
'review_count'       => 0,
);

与产品页面默认的提交形式不匹配。

问题:我需要使用wc类(wc_product)还是我需要使用不同的东西来解决我的问题?
$product = new WC_Product_Simple($product_id);
$product->set_regular_price(15);
$product->save();

您可以使用WC_Product_Grouped,WC_Product_External,WC_Product_Variable…对应的产品类型。

相关内容

  • 没有找到相关文章

最新更新