<?php
namespace WCML\StandAlone\UI;
use WCML\Utilities\AdminPages;
use WCML_Admin_Menus;
use WCML_Multi_Currency_UI;
use WPML\Core\ISitePress;
use WCML\StandAlone\NullSitePress;
use SitePress;
use woocommerce_wpml;
use WPML\FP\Str;
class AdminMenu extends \WCML_Menu_Wrap_Base {
/** @var SitePress|NullSitePress */
private $sitepress;
/**
* WCML_Menus_Wrap constructor.
*
* @param SitePress|NullSitePress $sitepress
* @param woocommerce_wpml $woocommerce_wpml
*/
public function __construct( ISitePress $sitepress, $woocommerce_wpml ) {
parent::__construct( $woocommerce_wpml );
$this->sitepress = $sitepress;
}
/**
* @return array
*/
protected function get_child_model() {
$current_tab = AdminPages::getTabToDisplay();
$model = [
'strings' => [
'title' => WCML_Admin_Menus::getWcmlLabel(),
],
'is_standalone' => true,
'menu' => [
'multilingual' => [
'title' => __( 'Multilingual', 'woocommerce-multilingual' ),
'active' => 'multilingual' === $current_tab ? 'nav-tab-active' : '',
'url' => admin_url( 'admin.php?page=wpml-wcml&tab=multilingual' ),
],
'multi_currency' => [
'name' => __( 'Multicurrency', 'woocommerce-multilingual' ),
'active' => 'multi-currency' === $current_tab ? 'nav-tab-active' : '',
'url' => admin_url( 'admin.php?page=wpml-wcml&tab=multi-currency' ),
],
],
'content' => $this->get_current_menu_content( $current_tab ),
];
return $model;
}
protected function get_current_menu_content( $current_tab ) {
$content = '';
switch ( $current_tab ) {
case 'multilingual':
$inP = Str::wrap( '<p>', '</p>' );
$inWrapper = Str::wrap( '<div class="wcml-banner">', '</div>' );
$wrapLink = function( $text, $url, $isExternal = true ) {
$attrs = $isExternal ? ' target="_blank" class="wpml-external-link" ' : '';
return sprintf( $text, '<a href="' . $url . '"' . $attrs . '">', '</a>' );
};
/* translators: %1$s and %2$s are opening and closing HTML link tags */
$content .= $inP( $wrapLink( esc_html__( 'To run your store in multiple languages, you need to use the %1$sWPML plugin%2$s.', 'woocommerce-multilingual' ), \WCML_Tracking_Link::getWpmlHome( true ) ) );
$content .= $inP(
/* translators: %1$s and %2$s are opening and closing HTML link tags */
$wrapLink( esc_html__( 'If you have it already, install and activate it. Otherwise, %1$sbuy WPML%2$s.', 'woocommerce-multilingual' ), \WCML_Tracking_Link::getWpmlPurchase( true ) )
. ' ' . esc_html__( 'You will need either the Multilingual CMS or Multilingual Agency package to use WPML with WooCommerce.', 'woocommerce-multilingual' )
);
$content .= $inP(
$wrapLink(
/* translators: %1$s and %2$s are opening and closing HTML link tags */
esc_html__( 'You can still use the %1$smulticurrency features%2$s without buying anything.', 'woocommerce-multilingual' ),
admin_url( 'admin.php?page=wpml-wcml&tab=multi-currency' ),
false
)
);
$content = $inWrapper( $content );
break;
case 'multi-currency':
default:
if ( current_user_can( 'wpml_operate_woocommerce_multilingual' ) ) {
$wcml_mc_ui = new WCML_Multi_Currency_UI( $this->woocommerce_wpml, $this->sitepress );
$content = $wcml_mc_ui->get_view();
}
break;
}
return $content;
}
}