Qualcosa che le altre risposte a questa domanda, non hanno affrontato è il fatto che è necessario un modo per il cliente di fine pagare la fattura . L'utilizzo del pagamento in contrassegno (rinominato in base alle proprie esigenze) garantisce perfettamente il mancato pagamento da parte dell'utente al momento del pagamento, ma il problema è che se il pagamento in contrassegno è il tuo solo il metodo di pagamento, sarà ancora il essere l'unico metodo di pagamento quando tu mandi loro la fattura.
Penso che nella maggior parte dei casi si desidera solo il pagamento in contrassegno durante il pagamento carrello e un metodo di pagamento diverso (come Stripe) per il metodo di pagamento della fattura.
Ecco il flusso di lavoro completo per creare una configurazione di pagamento posticipato.
- Come @crdunst cita, è necessario utilizzare Contrassegno e rinominarlo a "Wait for Fattura" o qualcosa del genere.
- Abilitare tutti i gateway di pagamento che si desidera utilizzare (in questo esempio, utilizzeremo solo la consegna in contrassegno e Stripe. Il pagamento in contrassegno sarà il nostro gateway di pagamento "checkout" e Stripe sarà il nostro pagamento con fattura gateway.
Utilizza il seguente filtro per attivare e disattivare i gateway in base a se o non si è in order-pay
endpoint (la pagina utilizzata per i pagamenti di fattura).
/**
* Only show Cash on Delivery for checkout, and only Stripe for order-pay
*
* @param array $available_gateways an array of the enabled gateways
* @return array the processed array of enabled gateways
*/
function so1809762_set_gateways_by_context($available_gateways) {
global $woocommerce;
$endpoint = $woocommerce->query->get_current_endpoint();
if ($endpoint == 'order-pay') {
unset($available_gateways['cod']);
} else {
unset($available_gateways['stripe']);
}
return $available_gateways;
}
add_filter('woocommerce_available_payment_gateways', 'so1809762_set_gateways_by_context');
Naturalmente, se utilizzi un gateway diverso dalla striscia per la pagina order-pay
, ti consigliamo di effettuare re che si aggiorni unset($available_gateways['stripe']);
alla giusta chiave dell'array.
Dopodiché, dovresti essere pronto! Il tuo sito mostrerà ora diversi gateway in base al fatto che tu sia sulla pagina di pagamento della fattura o meno!
Fatto che, sembra fare quello che voglio.Tuttavia non posso disabilitare Multisafepay, quindi l'utente ha la scelta tra Cash on Delivery o Multisafepay. Anche Multisafepay è selezionato per impostazione predefinita, tuttavia ho selezionato Contrassegno come predefinito. –
L'opzione Multisafepay è un plug-in? Non puoi semplicemente rimuovere il plugin se non è necessario? – crdunst
E 'stato! Multisafepay avrebbe dovuto essere installato insieme a WooCommerce, poiché non lo installerei mai. Disattivato il plug-in e funziona come dovrebbe. Saluti! –