diff --git a/addons/website/static/src/snippets/s_share/000.js b/addons/website/static/src/snippets/s_share/000.js
index b6d630b12f8..a5ef7c6c4a0 100644
--- a/addons/website/static/src/snippets/s_share/000.js
+++ b/addons/website/static/src/snippets/s_share/000.js
@@ -10,14 +10,17 @@ const ShareWidget = publicWidget.Widget.extend({
* @override
*/
start: function () {
- var urlRegex = /(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/;
- var titleRegex = /(\?(?:|.*&)(?:title|text|subject)=)(.*?)(&|#|$)/;
- var url = encodeURIComponent(window.location.href);
- var title = encodeURIComponent($('title').text());
- this.$('a').each(function () {
- var $a = $(this);
- $a.attr('href', function (i, href) {
- return href.replace(urlRegex, function (match, a, b, c) {
+ const urlRegex = /(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/;
+ const titleRegex = /(\?(?:|.*&)(?:title|text|subject|description)=)(.*?)(&|#|$)/;
+ const mediaRegex = /(\?(?:|.*&)(?:media)=)(.*?)(&|#|$)/;
+ const url = encodeURIComponent(window.location.href);
+ const title = encodeURIComponent($('title').text());
+ const media = encodeURIComponent($('meta[property="og:image"]').attr('content'));
+
+ this.$('a').each((index, element) => {
+ const $a = $(element);
+ $a.attr('href', (i, href) => {
+ return href.replace(urlRegex, (match, a, b, c) => {
return a + url + c;
}).replace(titleRegex, function (match, a, b, c) {
if ($a.hasClass('s_share_whatsapp')) {
@@ -29,6 +32,8 @@ const ShareWidget = publicWidget.Widget.extend({
return a + title + url + c;
}
return a + title + c;
+ }).replace(mediaRegex, (match, a, b, c) => {
+ return a + media + c;
});
});
if ($a.attr('target') && $a.attr('target').match(/_blank/i) && !$a.closest('.o_editable').length) {
diff --git a/addons/website/views/snippets/s_share.xml b/addons/website/views/snippets/s_share.xml
index 54c2aa47455..aaf48d46cf9 100644
--- a/addons/website/views/snippets/s_share.xml
+++ b/addons/website/views/snippets/s_share.xml
@@ -10,13 +10,13 @@
-
+
-
+