Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
woocommerce-paypal-payments
/
modules
/
ppcp-wc-gateway
/
src
/
FundingSource
:
FundingSourceRenderer.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Renders info about funding sources like Venmo. * * @package WooCommerce\PayPalCommerce\WcGateway\FundingSource */ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\WcGateway\FundingSource; use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; /** * Class FundingSourceRenderer */ class FundingSourceRenderer { /** * The settings. * * @var ContainerInterface */ protected $settings; /** * Map funding source ID -> human-readable name. * * @var array<string, string> */ protected $funding_sources; /** * The IDs of the sources belonging to PayPal that do not need to mention "via PayPal". * * @var string[] */ protected $own_funding_sources = array( 'venmo', 'paylater', 'paypal' ); /** * FundingSourceRenderer constructor. * * @param ContainerInterface $settings The settings. * @param array<string, string> $funding_sources Map funding source ID -> human-readable name. */ public function __construct( ContainerInterface $settings, array $funding_sources ) { $this->settings = $settings; $this->funding_sources = $funding_sources; } /** * Returns name of the funding source (suitable for displaying to user). * * @param string $id The ID of the funding source, such as 'venmo'. */ public function render_name( string $id ): string { $id = $this->sanitize_id( $id ); if ( array_key_exists( $id, $this->funding_sources ) ) { if ( in_array( $id, $this->own_funding_sources, true ) ) { return $this->funding_sources[ $id ]; } return sprintf( /* translators: %s - BLIK, iDeal, Mercado Pago, etc. */ __( '%s (via PayPal)', 'woocommerce-paypal-payments' ), $this->funding_sources[ $id ] ); } return $this->settings->has( 'title' ) ? $this->settings->get( 'title' ) : __( 'PayPal', 'woocommerce-paypal-payments' ); } /** * Returns description of the funding source (for checkout). * * @param string $id The ID of the funding source, such as 'venmo'. */ public function render_description( string $id ): string { $id = $this->sanitize_id( $id ); if ( array_key_exists( $id, $this->funding_sources ) ) { return sprintf( /* translators: %s - BLIK, iDeal, Mercado Pago, etc. */ __( 'Pay via %s.', 'woocommerce-paypal-payments' ), $this->funding_sources[ $id ] ); } return $this->settings->has( 'description' ) ? $this->settings->get( 'description' ) : __( 'Pay via PayPal.', 'woocommerce-paypal-payments' ); } /** * Sanitizes the id to a standard format. * * @param string $id The funding source id. * @return string */ private function sanitize_id( string $id ): string { return str_replace( '_', '', strtolower( $id ) ); } }