1

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

所以我使用 EDD-Simple-Shipping 来销售实物产品,但问题是那些实物(书籍)有捆绑(.pdf 版本的书籍章节),用户应该付费才能下载它们。

问题是当用户购买捆绑包含的产品(书籍)时,在支付所有捆绑的下载/产品(书籍的数字章节)后,将添加到收据中。

所以我想在我的插件中使用钩子和/或其他方法,这样当用户购买支持运输的下载/产品时,EDD 不会将捆绑的项目添加到收据和用户购买历史记录中。

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

到目前为止,我在 EDD 源代码中发现了这些可能有助于解决方案的函数:

在包含/下载-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

在包含/付款/actions.php

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

还有actions.php中的这个钩子

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

但它是一个动作钩子,我不能使用它来修改任何东西。

到目前为止,我找不到 EDD 将购物车项目存储到收据和下载历史等的位置,如果我知道它在哪里添加产品,这将是一个很好的开始,这样我就可以以某种方式阻止它这样做。

4

0 回答 0