# payplug/3.1.0/src/Admin/Metabox.php

PayPlug for WooCommerce (Official), version 3.1.0. 122 lines.

- Page: https://pluginprobe.com/plugins/payplug/3.1.0/code/src/Admin/Metabox.php
- Raw: https://pluginprobe.com/plugins/payplug/3.1.0/raw/src/Admin/Metabox.php
- Modified: 2026-09-25T08:27:34+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/payplug/3.1.0/code/src/Admin/Metabox.php#L10-L20`.

```php
<?php

namespace Payplug\PayplugWoocommerce\Admin;

// Exit if accessed directly
if (!defined('ABSPATH')) {
    exit;
}

use Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController;
use Payplug\PayplugWoocommerce\PayplugWoocommerceHelper;
use WP_Post;

/**
 * PayPlug metadata metabox.
 */
class Metabox
{
    /**
     * Metabox constructor.
     */
    public function __construct()
    {
        add_action('add_meta_boxes', [$this, 'register_payplug_metabox'], 100);
    }

    /**
     * Register a custom metabox to display metadata for the current order.
     *
     * This metabox is only register if the current order has been paid via PayPlug.
     */
    public function register_payplug_metabox(): void
    {
        global $post;

        $screen = class_exists('\Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController') && wc_get_container()->get(CustomOrdersTableController::class)->custom_orders_table_usage_is_enabled()
            ? function_exists('wc_get_page_screen_id') ? wc_get_page_screen_id('shop-order') : 'shop_order'
            : 'shop_order';

        add_meta_box(
            'payplug-transaction-details',
            __('PayPlug payment details', 'payplug'),
            [$this, 'render'],
            $screen,
            'side'
        );
    }

    /**
     * Render the metabox content.
     *
     * @param WP_Post $post
     */
    public function render($post): void
    {
        $order = ($post instanceof WP_Post) ? wc_get_order($post->ID) : $post;

        if (false === $order) {
            return;
        }

        if (!in_array($order->get_payment_method(), ['payplug', 'oney_x3_with_fees', 'oney_x4_with_fees', 'oney_x3_without_fees', 'oney_x4_without_fees', 'bancontact', 'apple_pay', 'american_express', 'satispay', 'sofort', 'ideal', 'mybank', 'wero', 'bizum', 'scalapay'])) {
            return;
        }

        $metadata = PayplugWoocommerceHelper::get_transaction_metadata($order);
        $date_format = get_option('date_format', 'j F Y');
        $time_format = get_option('time_format', 'G \h i \m\i\n');
        if (empty($metadata)) : ?>
			<p><?php _e('No metadata available for the current order.', 'payplug'); ?></p>
		<?php else : ?>
			<ul>
				<li><span><?php _e('PayPlug Payment ID', 'payplug'); ?>
						:</span> <?php echo esc_html($metadata['transaction_id']); ?></li>
				<li><span><?php _e('Status', 'payplug'); ?>
						:</span>
					<?php if (isset($metadata['refunded']) && true === $metadata['refunded']) : _e('Refunded', 'payplug'); ?>
					<?php elseif (isset($metadata['refunded']) && false === $metadata['refunded'] && (int) $metadata['amount_refunded'] > 0) : _e('Partially refunded', 'payplug'); ?>
					<?php elseif (isset($metadata['paid']) && true === $metadata['paid']) : _e('Paid', 'payplug'); ?>
					<?php else : _e('Not Paid', 'payplug'); ?>
					<?php endif; ?>
				</li>
				<!-- PPRO methods don't have card brand info-->
				<?php if (empty($metadata['card_brand']) && $order->get_payment_method() != 'payplug') { ?>
					<li><span><?php _e('payment_method', 'payplug'); ?>:</span> <?php echo str_replace('_', ' ', ucfirst($order->get_payment_method())); ?></li>
				<?php } ?>
				<li><span><?php _e('Amount', 'payplug'); ?>
						:</span> <?php echo wc_price((int) $metadata['amount'] / 100); ?></li>
				<li><span><?php _e('Paid at', 'payplug'); ?>
						:</span> <?php echo !empty($metadata['paid_at']) ? esc_html(date_i18n(sprintf('%s %s', $date_format, $time_format), $metadata['paid_at'])) : ''; ?>
				</li>

				<?php if (!empty($metadata['card_brand'])) { ?>
					<li><span><?php _e('Credit card', 'payplug'); ?>
							:</span> <?php echo !empty($metadata['card_brand']) ? esc_html(sprintf('%s (%s)', $metadata['card_brand'], $metadata['card_country'])) : ''; ?>
					</li>
				<?php } ?>

				<?php if (!empty($metadata['card_last4'])) { ?>
					<li><span><?php _e('Card mask', 'payplug'); ?>
							:</span> <?php echo !empty($metadata['card_last4']) ? esc_html(sprintf('**** **** **** %s', $metadata['card_last4'])) : ''; ?>
					</li>
				<?php } ?>

				<li><span><?php _e('3 D Secure', 'payplug'); ?>
						:</span> <?php echo isset($metadata['3ds']) ? true === $metadata['3ds'] ? __('Yes', 'payplug') : __('No', 'payplug') : ''; ?>
				</li>

				<?php if (!empty($metadata['card_exp_month']) && !empty($metadata['card_exp_year'])) { ?>
					<li><span><?php _e('Expiration date', 'payplug'); ?>
							:</span> <?php echo (!empty($metadata['card_exp_month']) && !empty($metadata['card_exp_year'])) ? esc_html(sprintf('%s/%s', zeroise($metadata['card_exp_month'], 2), zeroise($metadata['card_exp_year'], 2))) : ''; ?>
					</li>
				<?php } ?>

				<li><span><?php _e('Mode', 'payplug'); ?>
						:</span> <?php echo true === $metadata['live'] ? _e('Live', 'payplug') : _e('Test', 'payplug'); ?>
				</li>
			</ul>
		<?php endif;
    }
}

```
