重力形式:Authorize.net发票编号

时间:2016-03-14 18:26:36

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

我想知道如果您知道如何在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']不打印任何内容

2 个答案:

答案 0 :(得分: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,该字段应该可以达到您想要的效果。

答案 1 :(得分:0)

我使用以下代码附加"表单名称"到传递给Authorize.net的发票号码。我相信如果您在每个表单中创建的第一个字段是"发票号码"字段,但如果您稍后添加该字段,或将其添加到以前创建的表单,他们将不会都具有相同的字段编号,因此它可能无法正常工作。此代码将使用自动生成的唯一发票编号并添加表单名称。 即表格名称:"每年订阅" Auto Invioce Number:" 1234567890" Authorize.net收到的信息:" 1234567890-Yearly_Subscription"

我发现不是在主题文件中添加自定义函数,而是构建自定义插件并将其添加到其中。这样,如果您的主题更新,您将失去您的功能。下面包含了创建插件的代码以及Authorize.net代码的功能。将此文件另存为My_Custom_Functions_Plugin.php并将其上传到您的网站主机中的" wp-content / plugins /"文件夹,然后激活它。下次需要添加任何自定义函数时,只需在此文件的末尾添加它们即可。

<?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 


?>

希望这有帮助!