【问题标题】:Gravity forms: Authorize.net Invoice number重力形式:Authorize.net 发票号码
【发布时间】:2016-06-29 22:39:13
【问题描述】:

我想知道您是否知道如何在 Authorize.net 中的表单中添加发票代码。

我检查了 authorize.net 提要设置,但他们不要求提供发票代码。然后,我开始做一些研究,并找到了可用于创建发票代码的钩子 gform_authorizenet_save_entry_id

问题在于没有关于这个钩子的文档。它仅作为更新之一被提及。因此,我正在创建一个隐藏字段,其中 {entry_id} 作为默认值,并试图找到一种方法将其作为发票号传递。

任何帮助将不胜感激。谢谢:)

更新:

我能够使用以下代码段向表单添加交易代码

//Adding the transaction code 
add_filter( 'gform_authorizenet_transaction_pre_capture', 'set_invoice_number', 10, 5 );
function set_invoice_number( $transaction, $form_data, $config, $form, $entry ) {
    if ( $form['id'] == 6 ) {

      // your submission ID format to be inserted into the hidden field
      $SubmissionID = 'RW-' . $entry['id'];

      $transaction->invoice_num = $SubmissionID;
    }
    return $transaction;
}

我的发票号码变成了“RW-”,但是 $entry['id'] 没有打印任何东西

【问题讨论】:

    标签: wordpress authorize.net gravity-forms-plugin


    【解决方案1】:

    您可以通过将此代码添加到主题的 functions.php 文件中来使用输入字段分配发票编号:

    add_filter('gform_authorizenet_transaction_pre_capture', 'set_invoice_number', 10, 4);
    function set_invoice_number($transaction, $form_data, $config, $form)
    {
          $transaction->invoice_num = rgpost('input_YOUR INPUT FIELD NUMBER HERE');
    }
    

    如果输入字段是包含表单条目 ID 的隐藏字段,它应该完成您想要的。

    【讨论】:

      【解决方案2】:

      我使用以下代码将“表单名称”附加到传递给 Authorize.net 的发票编号。我相信如果您在每个表单中创建的第一个字段是“发票编号”字段,则前面的答案会起作用,但是如果您稍后添加该字段,或者将其添加到您之前创建的表单中,它们将不会都相同字段编号,因此它可能不起作用。此代码将使用自动生成的唯一发票编号并添加表单名称。 即表格名称:“年度订阅”自动发票号码:“1234567890” Authorize.net 收到的信息:“1234567890-Yearly_Subscription”

      我发现与其将自定义函数添加到您的主题文件中,不如构建一个自定义插件并将它们添加到那里。这样,如果您的主题更新,您将不会丢失您的功能。下面包括创建插件的代码以及 Authorize.net 代码的功能。将此文件另存为 My_Custom_Functions_Plugin.php 并将其上传到“wp-content/plugins/”文件夹中的 Web 主机,然后激活它。下次您需要添加任何自定义功能时,只需将它们添加到此文件的末尾即可。

      <?php
      
      /*
      
      Plugin Name: My_Custom_Functions_Plugin
      
       Plugin URL: http://WEBSITE
      
       Description: Custom Functions and Scripts for WEBSITE
      
       Version: 1.0.0
      
       Author: NAME
      
       Author URI: http://WEBSITE
      
      */
      
      
      
      // Functions for apending form name to authorize.net invoice
      
       add_filter( 'gform_authorizenet_transaction_pre_capture', 'invoice_num', 10, 4 );
      
       function invoice_num( $transaction, $form_data, $config, $form ) {       
      
       $transaction->invoice_num = uniqid() . '-' . rgar( $form_data, 'form_title' ); 
      
       gf_authorizenet()->log_debug( 'gform_authorizenet_transaction_pre_capture: ' . print_r( $transaction, 1 ) );
      
       return $transaction;}
      
      // End of Authorize.net Function
      
      
      
      // Add any additional Functions below this comment line to keep your themes functions.php file from getting overwritten on theme updates. Copy and paste this comment line before each function and give it a description to help keep you organized about what your function does 
      
      
      ?>
      

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2013-03-12
        • 1970-01-01
        • 2021-02-18
        • 2015-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多