如何防止EDD销售捆绑销售商品,而仅以实物形式销售产品

时间:2019-08-27 08:20:43

标签: php wordpress easy-digital-downloads

我正在编写一个插件,以自定义Easy Digital Downloads在销售产品过程中的行为方式。我想让客户购买捆绑销售的产品作为实物(使用EDD-Simple-Shipping)而不是捆绑销售。

因此,我正在使用EDD-Simple-Shipping来销售实物产品,但问题是那些实物(书)具有捆绑价格(书章的.pdf版本),用户应该支付捆绑费用才能下载他们。

问题是,当用户购买了捆绑的产品(书)后,在支付了所有捆绑的下载内容/产品(书的数字章节)后,就会将其添加到收据中。

因此,我想在插件中使用挂钩和/或其他方法,以便当用户购买启用了运输功能的下载/产品时,EDD不会将捆绑的商品添加到收据和用户购买历史记录中。

注意:由于已经添加了很多项目,因此我暂时无法迁移到Woo-Commerce之类的其他电子商务解决方案。

到目前为止,我在EDD源代码中发现了这些功能,可能会对解决方案有所帮助:

在include / download-functions.php中

edd_get_download_type($download_id) // Gets the Download type, either default or "bundled" 
edd_is_bundled_product( $download_id = 0 )  // Determines if a product is a bundle
edd_get_bundled_products() // Retrieves the product IDs of bundled products

在includes / payments / actions.php中

edd_complete_purchase() //Performs all necessary actions to complete a purchase. Triggered by the edd_update_payment_status() function.

这也是action.php的钩子

do_action( 'edd_complete_download_purchase', $download['id'], $payment_id, $download_type, $download, $cart_index ); 

但这是一个动作挂钩,我无法使用它进行任何修改。

到目前为止,我找不到EDD将购物车项目存储到收据和下载历史记录等的位置,如果我知道它将产品添加到何处,那将是一个很好的起点,这样我就可以防止这样做不知何故。

0 个答案:

没有答案