I would suggest using their query args hook. Here is the example they provide:
function sc_redirect_args_example( $args, $charge ) {
// Append the customer ID to the redirect URL
$args['cust_id'] = $charge->customer;
return $args;
}
add_filter( 'sc_redirect_args', 'sc_redirect_args_example', 10, 2 );
=======================
So, for your specific use case, I would either use their shortcodes for creating custom form fields, or if you don’t want to send the data to stripe and only use locally, I would hook into this to create my own fields:
$html .= apply_filters( 'sc_before_payment_button', $filter_html );
So, that would look something like this:
function customStripeFields($hmel){
$hmel .= '<input id="arbitrary_field" name="arbitrary_field" type="hidden" value="tricledsummersaltingwaterwaysdispropiddled"/>';
return $hmel;
}
add_filter('sc_before_payment_button', 'customStripeFields', 10);
The data will now be available in the $_POST global for use with further hooks.
They have an action hook in the payment processing code:
do_action( 'sc_redirect_before' );
But if you use that, you will have to build the entire redirect yourself (which is what the extensions -pro and -subscriptions do).
So instead, you would use the query args filter and access the $_POST global, adding to the query arg list:
wp_redirect( esc_url_raw( add_query_arg( apply_filters( 'sc_redirect_args', $query_args, $charge ), apply_filters( 'sc_redirect', $redirect, $failed ) ) ) );
Which would look something like this:
function someCustomArgs($query_args, $charge){
if(isset($_POST["arbitrary_field"])){
$query_args["arbitrary_field"] = $_POST["arbitrary_field"];
/*
Or if you do not want certain data sent visibly,
you can process it here and store in the db, or
whatever.
*/
}
return $query_args;
}
add_filter('sc_redirect_args', 'someCustomArgs', 10, 2);
Now that you have the variables available in the $_GET global, you can access them in your redirect page. If you do not want to send certain data visibly in the url query args, you can deal with the data within the sc_redirect_args function above and use the $_POST data directly, storing things in the db, sending emails, whatever you want. Just return the $query_args var when done.