カスタム JavaScript 関数を使用して div の内容を印刷することにより、クーポンを印刷するために使用されるクライアント用の Wordpress プラグインを編集しようとしています。このプラグインはショートコードによって呼び出されます:
[print-button target='div#foo']
ターゲットは、唯一のコンテンツであるクーポンの jpg を持つコンテナー div の css ID です。生成された「印刷」ボタンをクリックすると、ウィンドウが開き、jpg の印刷ダイアログが表示されます。ページにこのプラグインのインスタンスが 1 つあれば完全に機能しますが、インスタンスが 2 つ以上ある場合、新しい印刷ウィンドウで開く jpg はページの最後の jpg だけです。プラグインコードは次のとおりです。
add_shortcode("print-button", "sc_show_print_button");
function sc_show_print_button($atts, $content = null){
$target_element = $atts['target'];
if($target_element == ''){$target_element = "document.body";}
$output = "<input id=\"coupon\" type='button' onClick='return pop_print()' value='Print Coupon'/>
<script type='text/javascript'>
function pop_print(){
w=window.open(null, 'Print_Page', 'scrollbars=yes');
w.document.write(jQuery('$target_element').html());
w.document.close();
w.print();
}
</script>";
return $output;
}
関数の最後で $target_element 変数をエコーアウトしましたが、各「ターゲット」変数が正しくリストされています。他のすべてのインスタンスの「印刷」ボタンをクリックすると、最後のインスタンスの画像だけが表示される理由がわかりません。私が見ていないJavaScriptの単純なものだと思います。
私はこのプラグインの最初の作成者ではないため、彼らに連絡することはできません。
ご協力ありがとうございました。