【问题标题】:sending mail after payment paypal contact form 7付款后发送邮件 paypal 联系表 7
【发布时间】:2023-03-23 13:45:01
【问题描述】:

我在 WordPress 网站中有一个包含联系表格 7 的表格。 当您单击“提交”时,您将被重定向到 Paypal 并乐意付款:)。一切正常,但我想要更多。 我想发送邮件,只有当访客在 Paypal 上付款时。 我在谷歌上搜索过,但我没有找到这样做的方法。

有什么想法吗?

谢谢!

内森

【问题讨论】:

    标签: wordpress email paypal contact-form-7


    【解决方案1】:

    您可以使用PayPal IPN 来完成这项工作。有一个free plugin available to get PayPal IPN setup in WordPress 很容易,但是您需要从您的functions.php 文件(或您自己的插件)中创建一个基本挂钩,以根据您希望发送电子邮件的时间触发电子邮件。

    您可以根据不同的 PayPal 交易类型或付款状态触发您想要的任何操作。

    这是一个非常基本的示例,从扩展程序向 IPN 插件发送电子邮件。这是一个完整的插件文件,除了插件的钩子之外什么都没有。在这种情况下,我使用 paypal_ipn_for_wordpress_txn_type_cart 挂钩。

    <?php
    /**
     * @package PayPal IPN for WordPress - Hook Template
     * @version 1.0.0
     */
    /*
    Plugin Name: PayPal IPN for WordPress - Hook Template
    Plugin URI: http://www.angelleye.com/
    Description: Hook tester for PayPal IPN for WordPress plugin.
    Author: angelleye
    Version: 1.0.0
    */
    
    
    add_action('paypal_ipn_for_wordpress_txn_type_cart', 'paypal_ipn_for_wordpress_txn_type_cart', 10, 1);
    function paypal_ipn_for_wordpress_txn_type_cart($posted) {
    
        // Parse data from IPN $posted array
    
        $payment_status = isset($posted['payment_status']) ? $posted['payment_status'] : '';
        $mc_gross = isset($posted['mc_gross']) ? $posted['mc_gross'] : '';
        $first_name = isset($posted['first_name']) ? $posted['first_name'] : '';
        $last_name = isset($posted['last_name']) ? $posted['last_name'] : '';
        $cart_items = isset($posted['cart_items']) ? $posted['cart_items'] : '';
    
        /**
         * At this point you can use the data to generate email notifications,
         * update your local database, hit 3rd party web services, or anything
         * else you might want to automate based on this type of IPN.
         */
        $to = 'email@domain.com';
        $subject = 'Email from PayPal IPN';
        $message = 'Order Total: ' . $mc_gross . "\n";
        $message .= 'Payment Status: ' . $payment_status . "\n";
        $message .= 'Name: ' . $first_name . ' ' . $last_name . "\n";
        $message .= 'Cart Items: ' . print_r($cart_items, true);
        wp_mail( $to, $subject, $message );
    }
    

    因此,在您的网站上安装了 IPN 插件和此插件后,任何时候在您的 PayPal 帐户上进行购物车交易时,都会相应地发送一封电子邮件。这是我在网站上激活此插件在 PayPal 上运行测试交易时收到的电子邮件示例。

    Order Total: 90.27
    Payment Status: Completed
    Name: Tester Testerson
    Cart Items: Array
    (
        [0] => Array
            (
                [item_number] =>
                [item_name] => Woo Album #2
                [quantity] => 1
                [mc_gross] => 75.27
                [mc_handling] => 0.00
                [mc_shipping] => 0.00
                [custom] =>
                [option_name1] =>
                [option_selection1] =>
                [option_name2] =>
                [option_selection2] =>
                [btn_id] =>
                [tax] => 0.00
            )
    
    )
    

    当然,您可以花时间让电子邮件更漂亮,然后将其发送到您需要的任何电子邮件地址。

    同样,您可以使用lots of different hooks根据不同的IPN类型或支付状态来触发您自己的插件功能。

    此处的示例仅包含 IPN 提供的一些数据参数,但 WordPress 中的 IPN 记录将为您提供一个模板,您可以轻松地将其复制/粘贴到您自己的插件文件中,其中包含该类型 IPN 可用的每个 IPN 参数。

    【讨论】:

    • 好的,谢谢,我已经安装了插件,我明白它的作用了!但我必须了解如何在 Contact Form 7 和 Paypal IPN 之间建立联系,这可能很难。
    • 你不会真的在这两个插件之间挂钩。联系表格 7(或任何处理 PayPal 付款的方法)会将付款发送到 PayPal。然后,PayPal 的服务器将触发 IPN 发送到您使用插件配置的 URL。然后,您将在 IPN 插件中单独添加一个挂钩,以根据 IPN 何时访问该 URL 来触发您自己的事件。我很快就会为此编写一个教程,但可能需要几天时间才能完成。
    • 是的,谢谢你的解释,当你谈论这个的时候看起来很容易,但实际上......哈哈。我要搜索
    • 你到底卡在哪里了?
    • 我刚刚更新了答案,提供了有关如何完成它的更多详细信息。您可以复制/粘贴那里的内容并进行相应调整。
    【解决方案2】:

    列出的PayPal IPN plugin当时不可用,是否有其他活动插件代替?

    【讨论】:

    猜你喜欢
    • 2014-01-26
    • 2013-04-22
    • 2021-01-27
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多