PluginProbe
Pay with Vipps and MobilePay for WooCommerce / 6.3.1
Pay with Vipps and MobilePay for WooCommerce v6.3.1
6.3.1 6.2.6 6.3.0 6.2.5 6.2.4 6.2.3 6.2.2 6.2.1 6.2.0 6.1.10 6.1.9 6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1.0 6.0.5 6.0.4 6.0.3 6.0.2 6.0.1 All 190 releases
← All changes | payment/Blocks/woo-vipps-blocks.php +40 -27 6.0.2 → 6.3.1 View file →
@@ -24,18 +24,16 @@
24 24
25 25 if (is_admin()) {
26 26 // Add the on-site-messaging web component if we are in the admin area.
27 27 wp_enqueue_script('vipps-onsite-messageing');
28 + wp_enqueue_script('vipps-button-webcomponent');
28 29 }
29 30 });
30 31
31 32 // Inject block config variables to block editor assets
32 33 add_action('enqueue_block_editor_assets', function () {
34 + wp_enqueue_script('vipps-button-webcomponent');
33 35
34 -
35 -
36 -
37 -
38 36 // vipps-badge config
39 37 $vipps = Vipps::instance();
40 38 $badge_variants = [
41 39 ['label' => __('White', 'woo-vipps'), 'value' => 'white'],
@@ -47,21 +45,21 @@
47 45 $store_language = substr(get_bloginfo('language'), 0, 2);
48 46 if ($store_language == 'nb' || $store_language == 'nn') {
49 47 $store_language = 'no';
50 48 }
51 - if ($store_language == 'da') {
52 - $store_language = 'dk';
53 - }
54 - if (!in_array($store_language, ['en', 'no', 'dk', 'fi'])) {
49 + if (!in_array($store_language, ['en', 'no', 'dk', 'da', 'fi'])) {
55 50 $store_language = 'en'; // english default fallback
56 51 }
52 + // Looks like button and badge web components now use 'da' instead of 'dk' for danish. LP 2026-08-11
53 + if ('dk' === $store_language) $store_language = 'da';
57 54
58 55 $languages = [
59 56 ['label' => __('Default', 'woo-vipps'), 'value' => $store_language],
60 57 ['label' => __('English', 'woo-vipps'), 'value' => 'en'],
61 58 ['label' => __('Norwegian', 'woo-vipps'), 'value' => 'no'],
59 + ['label' => __('Swedish', 'woo-vipps'), 'value' => 'sv'],
62 60 ['label' => __('Finnish', 'woo-vipps'), 'value' => 'fi'],
63 - ['label' => __('Danish', 'woo-vipps'), 'value' => 'dk'],
61 + ['label' => __('Danish', 'woo-vipps'), 'value' => 'da'],
64 62 ];
65 63
66 64 $badge_config = [
67 65 'title' => sprintf(__('%1$s On-Site Messaging Badge', 'woo-vipps'), Vipps::CompanyName()),
@@ -82,9 +80,12 @@
82 80 // Buy-now product block uses the JS event 'wc-blocks_product_list_rendered', introduced in woocommerce 9.4. LP 29.11.2024
83 81 if (version_compare(WC_VERSION, '9.4', '>=')) {
84 82 $payment_method = Vipps::instance()->get_payment_method_name();
85 83 $store_language = Vipps::instance()->get_customer_language();
84 + // Looks like button and badge web components now use 'da' instead of 'dk' for danish. LP 2026-08-11
85 + if ('dk' === $store_language) $store_language = 'da';
86 86
87 +
87 88 switch ($payment_method) {
88 89 case 'Vipps':
89 90 $buy_now_languages = [
90 91 ['label' => __('Store language', 'woo-vipps'), 'value' => "store"],
@@ -89,9 +90,10 @@
89 90 $buy_now_languages = [
90 91 ['label' => __('Store language', 'woo-vipps'), 'value' => "store"],
91 92 ['label' => __('English', 'woo-vipps'), 'value' => 'en'],
92 93 ['label' => __('Norwegian', 'woo-vipps'), 'value' => 'no'],
93 - ['label' => __('Swedish', 'woo-vipps'), 'value' => 'se'],
94 + ['label' => __('Swedish', 'woo-vipps'), 'value' => 'sv'],
95 + ['label' => __('Danish', 'woo-vipps'), 'value' => 'da'],
94 96 ];
95 97 break;
96 98 case 'MobilePay':
97 99 $buy_now_languages = [
@@ -96,42 +98,53 @@
96 98 case 'MobilePay':
97 99 $buy_now_languages = [
98 100 ['label' => __('Store language', 'woo-vipps'), 'value' => "store"],
99 101 ['label' => __('English', 'woo-vipps'), 'value' => 'en'],
102 + ['label' => __('Norwegian', 'woo-vipps'), 'value' => 'no'],
103 + ['label' => __('Swedish', 'woo-vipps'), 'value' => 'sv'],
104 + ['label' => __('Danish', 'woo-vipps'), 'value' => 'da'],
100 105 ['label' => __('Finnish', 'woo-vipps'), 'value' => 'fi'],
101 - ['label' => __('Danish', 'woo-vipps'), 'value' => 'dk'],
102 106 ];
103 107 break;
104 108 }
105 109
106 - // Array of associative arrays with keys 'label' and 'value'. LP 2026-01-16
107 110 $buy_now_variants = [
108 - ['label' => __('Default', 'woo-vipps'), 'value' => 'default-mini'],
111 + ['label' => __('Primary', 'woo-vipps'), 'value' => 'primary'],
112 + ['label' => __('Dark', 'woo-vipps'), 'value' => 'dark'],
113 + ['label' => __('Light', 'woo-vipps'), 'value' => 'light'],
109 114 ];
110 - foreach (Vipps::instance()->get_express_logo_variants() as $value => $label) {
111 - $buy_now_variants[] = ['label' => $label, 'value' => $value];
112 - }
113 115
114 - // Create array of language => variant => logo_url. LP 2026-01-16
115 - $logos = [];
116 - foreach ($buy_now_languages as $lang_arr) {
117 - $lang_key = $lang_arr['value'];
118 - $lang = $lang_key === 'store' ? $store_language : $lang_key;
119 - foreach ($buy_now_variants as $variant_arr) {
120 - $variant = $variant_arr['value'];
121 - $logos[$lang_key][$variant] = Vipps::instance()->get_express_logo($payment_method, $lang, $variant);
122 - }
116 + $buy_now_verbs = [
117 + ['label' => __('Buy', 'woo-vipps'), 'value' => 'buy'],
118 + ['label' => __('Pay', 'woo-vipps'), 'value' => 'pay'],
119 + ['label' => __('Continue', 'woo-vipps'), 'value' => 'continue'],
120 + ['label' => __('Confirm', 'woo-vipps'), 'value' => 'confirm'],
121 + ['label' => __('Donate', 'woo-vipps'), 'value' => 'donate'],
122 + ['label' => __('Express', 'woo-vipps'), 'value' => 'express'],
123 + ];
124 +
125 + // Migrate from old variants to new config array by sending a map. LP 2026-07-01
126 + $variant_migration_map = [];
127 + foreach(array_keys(Vipps::instance()->get_express_logo_variants()) as $old_variant) {
128 + $new_config = Vipps::instance()->migrate_button_variant_to_config($old_variant);
129 + unset($new_config['brand']); // brand needs to be dynamic from payment method! LP 2026-07-01
130 + unset($new_config['language']);
131 + unset($new_config['stretched']);
132 + $variant_migration_map[$old_variant] = $new_config;
123 133 }
124 134
125 135 $buy_now_config = [
126 136 'BuyNowWithVipps' => Vipps::instance()->vippsJSConfig['vippssmileurl'],
127 - 'logos' => $logos,
128 137 'vippssmileurl' => Vipps::instance()->vippsJSConfig['vippssmileurl'],
129 138 'vippsbuynowbutton' => Vipps::instance()->vippsJSConfig['vippsbuynowbutton'],
130 139 'vippsbuynowdescription' => Vipps::instance()->vippsJSConfig['vippsbuynowdescription'],
131 140 'languages' => $buy_now_languages,
132 141 'variants' => $buy_now_variants,
142 + 'verbs' => $buy_now_verbs,
133 143 'vippsresturl' => '/woo-vipps/v1',
144 + 'paymentMethod' => Vipps::instance()->get_payment_method_name(),
145 + 'storeLanguage' => Vipps::instance()->get_customer_language(),
146 + 'variantMigrationMap' => $variant_migration_map,
134 147 ];
135 148 wp_add_inline_script('woo-vipps-buy-now-editor-script', 'const vippsBuyNowBlockConfig = ' . json_encode($buy_now_config), 'before');
136 149
137 150 // Buy now block for the minicart only. LP 2026-02-09
@@ -139,9 +152,9 @@
139 152 'vippsbuynowdescription' => sprintf(__( 'Add a %1$s Buy Now-button to the mini-cart', 'woo-vipps'), $vipps->get_payment_method_name()),
140 153 'vippsbuynowbutton' => $buy_now_config['vippsbuynowbutton'],
141 154 'vippssmileurl' => $buy_now_config['vippssmileurl'],
142 155 'BuyNowWithVipps' => $buy_now_config['BuyNowWithVipps'],
143 - 'minicartLogo' => $vipps->get_payment_logo('minicart'),
156 + 'buttonHtml' => $vipps->get_html_button_for_context('minicart'),
144 157 ];
145 158 wp_add_inline_script('woo-vipps-buy-now-cart-editor-script', 'const vippsBuyNowCartBlockConfig = ' . json_encode($buy_now_cart_config), 'before');
146 159 }
147 160 });