如何解决Woocommerce订阅:添加触发器以自动更改下一个付款日期
我使用“ WooCommerce-Lite的产品交付日期”让客户决定何时收取其订购的第二笔款项。 此插件添加一个带有Meta_key =“ _prdd_lite_date”和value =日期本身的“ wp_woocommerce_order_itemMeta”。
CREATE TRIGGER mytrigger
AFTER INSERT
ON wp_wc_order_product_lookup
FOR EACH ROW
BEGIN
SET @MetaIDNEXT := '';
SET @MetaIDEND := '';
SET @NEWDATE := '';
SELECT pm1.Meta_id INTO @MetaIDNEXT FROM wp_postMeta pm1,wp_posts p1,wp_wc_order_product_lookup opl WHERE opl.order_item_id = NEW.order_item_id AND p1.post_parent = opl.order_id AND p1.ID = pm1.post_id AND pm1.Meta_key = "_schedule_next_payment";
SELECT pm1.Meta_id INTO @MetaIDEND FROM wp_postMeta pm1,wp_wc_order_product_lookup opl WHERE opl.order_item_id = NEW.order_item_id AND p1.post_parent = opl.order_id AND p1.ID = pm1.post_id AND pm1.Meta_key = "_schedule_end";
SELECT oim.Meta_value INTO @NEWDATE FROM wp_woocommerce_order_itemMeta oim WHERE oim.Meta_key = "_prdd_lite_date" AND oim.order_item_id = NEW.order_item_id;
IF (@MetaIDNEXT != '' AND @MetaIDEND != '' AND @NEWDATE != '')
THEN
update wp_postMeta SET Meta_value = DATE_FORMAT(DATE_ADD(STR_TO_DATE(@NEWDATE,'%Y-%m-%d'),INTERVAL 2 MONTH),'%Y-%m-%d %H:%i:%s') WHERE Meta_id = @MetaIDEND;
update wp_postMeta SET Meta_value = DATE_FORMAT(STR_TO_DATE(@NEWDATE,'%Y-%m-%d %H:%i:%s') WHERE Meta_id = @MetaIDNEXT;
END IF;
END
如果我使自己从PHPMyAdmin中插入,并且在wordpress进行购买时被触发,则触发器可以很好地工作,因为当发生错误时,它会使我的查询崩溃。 但是我想我在触发器中执行选择时不知道是否有所有数据。因此,我不知道是否应将触发器放置在此表中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。