WordPressプラグインを書くのは初めてです。woocommerceプラグインが単一の製品ページに画像を表示する方法を変更する小さなプラグインを作成しようとしています。具体的には、商品画像がない場合は、プレースホルダー画像を表示するのではなく、画像を保持するdivを「display:none」にします。私が使用している戦略は、add_actionを使用して独自のバージョンのwoocommerceのproduct_image.phpテンプレートをレンダリングしてから、remove_actionを使用して元のproduct_image.phpファイルがレンダリングされないようにすることです。Firebugで「display:none」divを確認できるので、add_actionは明らかに機能しています。ただし、remove_actionは成功していません。
これが私のコードです:
$add_result = add_action( 'woocommerce_before_single_product_summary', 'eba_wc_show_product_images', 10);
function eba_wc_show_product_images() {
include( 'eba_product-image.php' );
}
$remove_result = remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 30);
echo "<hr/>result of add_result = " . $add_result . "<hr/>";
echo "<hr/>result of remove_result = " . $remove_result . "<hr/>";
woocommerce_before_single_product_summaryフックの元のadd_actionの優先度は20だったので、remove_action30を優先しました。
最後の2つのデバッグステートメントは、add_actionが「1」を返していることを示していますが、remove_actionの結果は空です。どんな助けでも大歓迎です。