web-dev-qa-db-ja.com

ウーコマースがテーマで有効になっているかどうかを確認する方法

私は、次のようなウーコマースでテーマを作成しています。

    <ul>
              <li>
                     <?php if ( is_user_logged_in() ) { ?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('My Account','woothemes'); ?>"><?php _e('My Account','woothemes'); ?></a>
<?php }
else { ?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('Sign-in','woothemes'); ?>"><?php _e('Sign-in','woothemes'); ?></a>
<?php } ?>
                </li>
                                                <li><a href="<?php echo get_option('home').'/'.'my-lists/'?>" title="My Wishlist">Wishlist</a></li>

<!--                <li><a href="#" title="Email updates">Email Updates</a></li>
-->                <li> <?php global $woocommerce; ?>

<a id="header-ShoppingCart" class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php echo sprintf(_n('%d item', 'My Bag (%d)', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> - <span id="header-cartCount"><?php echo $woocommerce->cart->get_cart_total(); ?></span></a>

           </li>

            </ul>

しかし、woocommerceプラグインが有効になっていない場合、これはサイトを壊します。 woocommerceプラグインが有効になっているかどうかはどうやって確認できますか?

4
Oudin

'WooCommerce'クラスが存在するかどうかを確認してから、WooCommerceを必要とするコードを実行します。

<?php
if ( class_exists( 'WooCommerce' ) ) {
  // code that requires WooCommerce
} else {
  // you don't appear to have WooCommerce activated
}
?>
17
hereswhatidid

Woocommerceまたは別のプラグインがアクティブかどうかを確認するには、メッセージを表示するテンプレートに次のコードを貼り付けます。

if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
    echo 'WooCommerce is active.';
} else {
    echo 'WooCommerce is not Active.';
}
9
Aamer Shahzad

以下のコードを使用してください。マルチサイトでも動作します。

include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if(is_plugin_active( 'woocommerce/woocommerce.php')) return;
1
Arshid KK