クラス
ConfirmPage
ソース ソース
ファイル: src/Views/ConfirmPage/ConfirmPage.php
class ConfirmPage extends PCP
{
const SCRIPT_SLUG = 'wcex_linepay_purchase_button';
/**
* Settlement module
*
* @var LinePay
*/
protected $module;
/**
* Invokes functions/methods after fees are set
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return void
*/
public function onFeesSet() {
$html = $this->confirmPageWrapper();
if (empty($html)) {
$this->load();
} else {
$this->loadErrorAssets();
}
}
/**
* Loads css for error message
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return void
*/
public function loadErrorAssets() {
wp_enqueue_style(
'linepay-confirmpage-error',
WCEX_LINEPAY_PLUGIN_URL . '/src/Views/ConfirmPage/errormessage.css',
[],
WCEX_LINEPAY_VERSION
);
}
/**
* Variables to inject into our script
*
* LINE Pay requires フリガナ name3 and name4
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @inheritDoc
* @return array
*/
public function makeJSvars() {
$furigana_required = false;
$name3 = '';
$name4 = '';
if (usces_have_shipped() === true) {
$del = $_SESSION['usces_entry']['delivery'];
if (strtoupper($del['country']) === 'JP') {
$furigana_required = true;
$name3 = isset($del['name3']) ? $del['name3'] : '';
$name4 = isset($del['name4']) ? $del['name4'] : '';
}
}
$vars = array_merge(
Generic\WelcartUtils::makeJSvars(),
$this->module->getScriptInjectionVars(),
[
'amountZero' => $_SESSION['usces_entry']['order']['total_full_price'] <= 0,
'backButtonText' => __('Back to payment method page.', 'usces'),
'extraNamesRequired' => $furigana_required === true && (empty($name3) || empty($name4)),
]
);
return $vars;
}
/**
* Confirm page form wrapper for LINE Pay. Displays error message if LINE Pay options
* validation fails
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return string
*/
protected function confirmPageWrapper() {
$opts = $this->module->getActingOpts();
$display = false;
if (empty($opts['channel_id'])) {
$display = true;
}
if (empty($opts['channel_secret_key'])) {
$display = true;
}
if ($this->module->ready() === false || $display === true) {
/**
* Welcart filter
*
* @ignore
*/
$btntext = apply_filters('usces_filter_confirm_prebutton_value', __('Back to payment method page.', 'usces'));
ob_start();
?>
<form
id="purchase_form"
action="<?php echo USCES_CART_URL ?>"
method="post"
onKeyDown="if (event.keyCode == 13) {return false;}"
>
<div class="send">
<input
name="backDelivery"
type="submit"
id="back_button"
class="back_to_delivery_button"
value="<?php echo $btntext; ?>"
/>
</div>
<p class="linepay error-message">
<?php
echo __('LINE Pay is currently unavailable. Please contact the seller for more info.', 'wcex_linepay')
?>
</p>
<?php
$html = ob_get_contents();
ob_end_clean();
return $html;
}
return '';
}
/**
* Wrapper for overridden filter method.
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param string $html
* @param array $payments
* @param string $acting_flag
* @param int $rand
* @param string $purchase_disabled
* @return string
*/
protected function filterConfirmPagePayButton($html, $payments, $acting_flag, $rand, $purchase_disabled) {
$errorhtml = $this->confirmPageWrapper();
if (!empty($errorhtml)) {
return $errorhtml;
}
ob_start();
?>
<form id="purchase_form" action="<?php echo esc_url(USCES_CART_URL); ?>" method="post" onKeyDown="if (event.keyCode == 13) {return false;}">
<div id="<?php echo Config\Constants::REACT_DOM_NODE ?>"></div>
<?php
$html = ob_get_contents();
ob_end_clean();
return $html;
}
/**
* Called if on confirm page and options validation succeeds.
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return void
*/
protected function load() {
$assetsmap = include(WCEX_LINEPAY_PLUGIN_DIR . '/dist/js/Views/ConfirmPage/App.asset.php');
wp_enqueue_script(
self::SCRIPT_SLUG,
WCEX_LINEPAY_PLUGIN_URL . '/dist/js/Views/ConfirmPage/App.js',
$assetsmap['dependencies'],
$assetsmap['version'],
true
);
wp_localize_script(
self::SCRIPT_SLUG,
Config\Constants::SCRIPTS_GLOBAL_VAR_NAME,
$this->makeJSvars()
);
wp_set_script_translations(self::SCRIPT_SLUG, 'wcex_linepay', WCEX_LINEPAY_LANGDIR);
}
}
- confirmPageWrapper — Confirm page form wrapper for LINE Pay. Displays error message if LINE Pay options validation fails
- filterConfirmPagePayButton — Wrapper for overridden filter method.
- load — Called if on confirm page and options validation succeeds.
- loadErrorAssets — Loads css for error message
- makeJSvars — Variables to inject into our script
- onFeesSet — Invokes functions/methods after fees are set