Ich habe eine Funktion, die Verkäufe über einen Drittanbieterdienst verarbeitet, das Ergebnis verarbeitet und ein Array mit dem Status "Success" oder "Invalid" zurückgibt. Dieser Verkaufsaufruf wird mithilfe des Hooks gform_after_submission durchgeführt, der auf das bestimmte Formular angewendet wurde.Gravity Forms benutzerdefinierter Validierungsfilter
Was ich tun muss, ist das "Success" oder "Invalid" Ergebnis im Array als eine Variable zu speichern, die ich später an eine Funktion übergeben kann, um das Kreditkartenfeld mit gform_validation hook zu validieren oder ungültig zu machen.
Ich erkläre die Variable in einer Funktion, etwa so:
function foo {
...code to sell product through API...
$status = $checkoutShoppingCartRequest['Result']['Status'];
}
Wenn ich drucken Sie die Variable $ Status innerhalb der Funktion ist es, die entweder Erfolg oder ungültig, wie es sollte.
ist hier eine andere Funktion, wo ich brauche diese Variable zu verwenden, um gform_validation übergeben, die jedes Mal, unabhängig von Erfolg oder ungültige Fehler auftreten:
function MBvalidate($validation_result) {
$form = $validation_result['form'];
if ($status !== "Success") {
$validation_result['is_valid'] = false;
foreach($form['fields'] as &$field) {
if ($field->id == '34') {
$field->failed_validation = true;
$field->validation_message = 'Your credit card could not be processed.';
break;
}
}
}
//Assign modified $form object back to the validation result
$validation_result['form'] = $form;
return $validation_result;
}
add_filter('gform_validation_47', 'MBvalidate');
ich versucht haben, die Variable eine Reihe von verschiedenen Möglichkeiten vorbei, via globals und sessions etc.
Ich bin neu in der GF-Entwicklung, also bin ich mir sicher, dass mir etwas fehlt. Ich würde jede mögliche Richtung schätzen.
Wo haben Sie bestanden? '$ status' Variable in einer Callback-Funktion? haben Sie 'var_dump ($ validation_result)' Variable? –
Ich gehe davon aus, dass Sie die Variable global gemacht haben, indem Sie 'global' Schlüsselwort in' MBvalidate() 'Funktion hinzugefügt haben, also' global $ status ', bin ich richtig? Außerdem müssen Sie das 'global' Schlüsselwort in die 'foo()' Funktion einfügen – Samir