0

私のクライアントは、PayPal のカートに追加ボタンをページのどこにでも配置できる機能を望んでいます。1 つのページに複数のボタンを配置できる可能性があります。彼は [price MONKEY] のようなショートコードを使用して、PaylPal ボタンでそのテキストを「monkey」の価格と説明に置き換えます。

そのため、ページで [price] ショートコードを見つけるたびに、データベースにクエリを実行して値を取得し、次の PayPal ボタン コードに挿入して、ページのその場所にボタンを表示する必要があります。次に、次の置換がある場合はそれに移動します。

PayPal ボタンのコードは次のとおりです。

<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" value="_cart" name="cmd" /> 
<input type="hidden" value="me@mydomain.com" name="business" /> 
<input type="hidden" value="1" name="add" /> 
<input type="hidden" value="MONKEY" name="item_name" /> 
<input type="hidden" value="" name="item_number" /> 
<input type="hidden" value="17.00" name="amount" /> 
<input type="hidden" value="2" name="no_shipping" /> 
<input type="hidden" value="USD" name="currency_code" /> 
<input border="0" type="image" name="submit" src="https://www.paypal.com/en_US/i/btn/x-click-but22.gif" alt="Make payments with PayPal - it's fast, free and secure!" />
</form>

preg_replace_callback() 関数を使用してこれを実行しようとしましたが、ボタンのすべての HTML を挿入するのに問題があり、ページ上でさらにショートコード インスタンスを探してそれらを置き換えることに問題がありました。

これに関する助けに感謝します!このコードはすべて既に記述されている Wordpress では非常に単純です (しかし、どこに?)。ありがとう!

これが私の正規表現です:

 $pattern = '/\[price (.*?)\]/';
4

1 に答える 1

0

基本的なpreg_replaceを使用するだけで、パターンを使用してこのタスクを実行できます。そのようなもの:

<?php

function myexamplefunction($html){
    $pattern = '/\[price (.*?)\]/';
    $replace = '<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" value="_cart" name="cmd" /> 
        <input type="hidden" value="me@mydomain.com" name="business" /> 
        <input type="hidden" value="1" name="add" /> 
        <input type="hidden" value="$1" name="item_name" /> 
        <input type="hidden" value="" name="item_number" /> 
        <input type="hidden" value="17.00" name="amount" /> 
        <input type="hidden" value="2" name="no_shipping" /> 
        <input type="hidden" value="USD" name="currency_code" /> 
        <input border="0" type="image" name="submit" src="https://www.paypal.com/en_US/i/btn/x-click-but22.gif" alt="Make payments with PayPal - it\'s fast, free and secure!" />
      </form>';
    return preg_replace($pattern,$replace,$html);
}
于 2013-02-05T21:17:03.440 に答える