Woocommerce - 无法删除产品变化

问题描述:

使用WooCommerce 2.6.1Woocommerce - 无法删除产品变化

我无法删除一个变量产品的产品变化:成绩仍然是在Ajax调用后的数据库。 似乎ajax调用不通过:把error_log(print_r('remove_variation',true));不输出任何内容(class-wc-ajax.php中的第387行)。 该操作添加到类的构造函数中。函数public function remove_variation()只是不被调用。

有没有人有同样的问题,并找到一种方法使其工作?

+0

看来WooCommerce订阅插件是原因。 – user3480616

+0

我会建议将此提交给Woo支持,以便他们可以修复它。 – helgatheviking

+0

完成了。这个支持一周没有反应,我在这里发布后,他们神奇地醒了过来。尽管如此,我最终还是在调试自己,因为他们对我的结论表示怀疑。所以我指出了问题所在(请参阅下面的答案),并且现在努力完成了,他们应该能够提供补丁。注意:这是一个商业插件,我不应该*做出贡献。 – user3480616

/** 
* Trash a variation, don't delete it permanently. 
* 
* This is hooked to 
* Hijack WooCommerce's WC_AJAX::remove_variation() "Delete Variation" Trash a variation if it is a subscription variation via ajax function 
*/ 
public static function remove_variations() { 

if (isset($_POST['variation_id'])) { // removing single variation 
error_log("here3"); 

check_ajax_referer('delete-variation', 'security'); 
$variation_ids = array($_POST['variation_id']); 
error_log($_POST['variation_id']); 

} else { // removing multiple variations 
error_log("here4"); 

check_ajax_referer('delete-variations', 'security'); 
$variation_ids = (array) $_POST['variation_ids']; 

} 

foreach ($variation_ids as $variation_id) { 

$variation_post = get_post($variation_id); 
error_log(print_r($variation_post,)); 

if ($variation_post && $variation_post->post_type == 'product_variation') { 

$variation_product = get_product($variation_id); 

if ($variation_product && $variation_product->is_type('subscription_variation')) { 
wp_trash_post($variation_id); 
} 
} 
} 
die(); 
} 

除去& & $ variation_product-> is_type( 'subscription_variation')来解决未删除的变化的问题。 http://support.woothemes.com/requests/162693应提供补丁,已报告问题。