2017-09-24 62 views
0

因此,我有a website使用「WP Google Maps」插件。它有點自定義,並將所有在Google Places中註冊的Tattoo Parlors的數據提取出來,並將它們顯示爲我們網站上的標記。從這裏,你可以點擊「點擊這裏獲取更多信息」,它會顯示你店內的谷歌地點評論。儘管如此,該網站還沒有設計風格,但對於它的外觀有多糟糕表示歉意。如何編輯個人WP Google地圖標記(WP Google地圖)的數據

我想要做的是給每個客廳標記「發送消息」功能下的「點擊此處獲取更多信息」文本。現在它只是鏈接到即將推出的通用頁面,並顯示在網站上的每個標記上。我想讓它鏈接到他們的Facebook信使鏈接(例如:https://messenger.com/t/asos)。

我想找出最好的方法來做到這一點 - 我不介意現在自動添加標記發送消息數據,因爲我只是想讓它首先工作。我已經做了一些研究,但是我找不到任何直接提到這種事情的東西。

下面是標記當前代碼:

     //assign an infowindow to the marker so that when its clicked it shows the name of the place 
        google.maps.event.addListener(marker, 'click', (function (marker, x) { 
         return function() { 
          infowindow.setContent("<div class='no-scroll'><strong>" + results[x]['place']['name'] + "</strong><br><br>" 
           + results[x]['place']['address'] + "<br><br>" 
           + "<span style=\"display:table;margin:0 auto; color: #e7711b;\">" 
           + results[x]['place']['rating'] + "&nbsp;" + WPacStars.rating_render(results[x]['place']['rating'], 16, 'e7711b') 
           + "</span>" 
           +"<div id='more_info' align='center' style='margin: 0 auto;'>" 
           + "<a href='" + WPURLS.siteurl + "/reviews?place_id=" + results[x]['place']['id'] 
           + "' target='_blank' style='text-align: center; display: block; margin-bottom: 5px; margin-top: 5px;text-decoration: none; font-size: 16px; color: #6495ed'>click here for more info</a>" 
           + "<a href=‘https://messenger.com/t/asos' style='text-align: center; display: block; text-decoration: none; font-size: 14px; text-decoration: none; color: #6495ed'>Send Message</a>" 
           + "</div></div>"); 
          infowindow.open(MYMAP.map, marker); 
         } 
        })(marker, x)); 
       } 
      } 
     } 
    ); 
} 
//}} 

}; 

下面的代碼是我的嘗試和思考可能會奏效。我不確定if語句是否是最好的解決方法。

//assign an infowindow to the marker so that when its clicked it shows the name of the place 
        if ['place_id' 1] google.maps.event.addListener(marker, 'click', (function (marker, x) { 
         return function() { 
          infowindow.setContent("<div class='no-scroll'><strong>" + results[x]['place']['name'] + "</strong><br><br>" 
           + results[x]['place']['address'] + "<br><br>" 
           + "<span style=\"display:table;margin:0 auto; color: #e7711b;\">" 
           + results[x]['place']['rating'] + "&nbsp;" + WPacStars.rating_render(results[x]['place']['rating'], 16, 'e7711b') 
           + "</span>" 
           +"<div id='more_info' align='center' style='margin: 0 auto;'>" 
           + "<a href='" + WPURLS.siteurl + "/reviews?place_id=1" 
           + "' target='_blank' style='text-align: center; display: block; margin-bottom: 5px; margin-top: 5px;text-decoration: none; font-size: 16px; color: #6495ed'>click here for more info</a>" 
           + "<a href='https://www.facebook.' style='text-align: center; display: block; text-decoration: none; font-size: 14px; text-decoration: none; color: #6495ed'>Send Message</a>" 
           + "</div></div>"); 
          infowindow.open(MYMAP.map, marker); 

         else google.maps.event.addListener(marker, 'click', (function (marker, x) { 
         return function() { 
          infowindow.setContent("<div class='no-scroll'><strong>" + results[x]['place']['name'] + "</strong><br><br>" 
           + results[x]['place']['address'] + "<br><br>" 
           + "<span style=\"display:table;margin:0 auto; color: #e7711b;\">" 
           + results[x]['place']['rating'] + "&nbsp;" + WPacStars.rating_render(results[x]['place']['rating'], 16, 'e7711b') 
           + "</span>" 
           +"<div id='more_info' align='center' style='margin: 0 auto;'>" 
           + "<a href='" + WPURLS.siteurl + "/reviews?place_id=" + results[x]['place']['id'] 
           + "' target='_blank' style='text-align: center; display: block; margin-bottom: 5px; margin-top: 5px;text-decoration: none; font-size: 16px; color: #6495ed'>click here for more info</a>" 
           + "<a href='/coming-soon' style='text-align: center; display: block; text-decoration: none; font-size: 14px; text-decoration: none; color: #6495ed'>Send Message</a>" 
           + "</div></div>"); 
          infowindow.open(MYMAP.map, marker); 
         } 
        })(marker, x)); 
       } 
      } 
     } 
} 
//}} 
}; 

任何指導/幫助將是偉大的!我仍然在學習,所以覺得自己很殘酷。

回答

2

如果要將條件內容放入infowindow中,請不要爲偵聽器創建if語句。相反,在偵聽器中創建一個if語句並將錨點html放入一個變量中。這樣你就可以控制鏈接是否顯示出來,並且有更好的代碼。例如:

google.maps.event.addListener(marker, 'click', (function(marker, x) { 
    return function() { 
    var messengerLink; 
    if (messengerLinkExists) { 
     messengerLink = "<a href=‘https://messenger.com/t/asos' style='text-align: center; display: block; text-decoration: none; font-size: 14px; text-decoration: none; color: #6495ed' target='_blank'>Send Message</a>"; 
    } else { 
     messengerLink = ''; 
    } 
    infowindow.setContent(
    "<div class='no-scroll'><strong>" + results[x]['place']['name'] + "</strong><br><br>" + results[x]['place']['address'] + "<br><br>" + "<span style=\"display:table;margin:0 auto; color: #e7711b;\">" + results[x]['place']['rating'] + "&nbsp;" + WPacStars.rating_render(results[x]['place']['rating'], 16, 'e7711b') + "</span>" + "<div id='more_info' align='center' style='margin: 0 auto;'>" + "<a href='" + WPURLS.siteurl + "/reviews?place_id=" + results[x]['place']['id'] + "' target='_blank' style='text-align: center; display: block; margin-bottom: 5px; margin-top: 5px;text-decoration: none; font-size: 16px; color: #6495ed'>click here for more info</a>" + messengerLink + "</div></div>"); 

    infowindow.open(MYMAP.map, marker); 
    } 
})(marker, x)); 

現在我不確定你打算在哪裏獲得信使鏈接。您的results.php沒有,並且它也不包含在Places API響應中。瞭解有關Places API返回內容的更多信息in this link 如果您希望數據是Places API響應的一部分,那麼您可能會在那裏發生損失。

您的網站也得到一個RetiredVersion警告:

谷歌地圖API警告:RetiredVersion https://developers.google.com/maps/documentation/javascript/error-messages#retired-version

由於您使用的一個插件,它可能是明智的更新。

我希望這可以幫助你!

+0

謝謝Henris,真的幫了很多!很好的一個伴侶。我希望可以創建一個名爲「Messenger」的新郵件類型,然後可以手動輸入所有的信使鏈接 - 然後,我希望可以單獨將標記鏈接到正確的信使鏈接。但是當我來到它時,我會穿過那座橋! – Richie

+0

當然!如果我的回答對你有幫助,你也可以接受我的回答,這樣它可以幫助我和其他人:) – henrisycip

+0

乾杯隊友,我做到了! :)如果我想創建信使作爲自定義帖子類型(這樣我可以手動添加信使信息 - 我可以在您提到的變量設置中引用自定義帖子類型嗎? – Richie