Могу ли я использовать функцию WooCommerce без какой-либо страницы WooCommerce?

#php #wordpress #woocommerce

#php #wordpress #шаблоны #woocommerce #Цена

Вопрос:

На моем сайте WordPress установлена программа WooCommerce. После этого я создал пользовательский шаблон страницы, который не имеет ничего общего с WooCommerce. В этом шаблоне я хочу использовать функцию WooCommerce wc_price() , но она не работает. Это то, что я пробовал:

 global $woocommerce;
$woocommerce->wc_price(12);
--
WC()->wc_price(12);
  

Но оба эти способа не работают. Итак, как я могу использовать эту функцию в моем пользовательском шаблоне (если это возможно)?

Ответ №1:

Вы можете просто использовать функцию без объекта WC. Ниже приведено определение этой функции. Таким образом, вы можете просто использовать, как wc_price(12)

 function wc_price( $price, $args = array() ) {
    $args = apply_filters(
        'wc_price_args', wp_parse_args(
            $args, array(
                'ex_tax_label'       => false,
                'currency'           => '',
                'decimal_separator'  => wc_get_price_decimal_separator(),
                'thousand_separator' => wc_get_price_thousand_separator(),
                'decimals'           => wc_get_price_decimals(),
                'price_format'       => get_woocommerce_price_format(),
            )
        )
    );

    $unformatted_price = $price;
    $negative          = $price < 0;
    $price             = apply_filters( 'raw_woocommerce_price', floatval( $negative ? $price * -1 : $price ) );
    $price             = apply_filters( 'formatted_woocommerce_price', number_format( $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] ), $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] );

    if ( apply_filters( 'woocommerce_price_trim_zeros', false ) amp;amp; $args['decimals'] > 0 ) {
        $price = wc_trim_zeros( $price );
    }

    $formatted_price = ( $negative ? '-' : '' ) . sprintf( $args['price_format'], '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $args['currency'] ) . '</span>', $price );
    $return          = '<span class="woocommerce-Price-amount amount">' . $formatted_price . '</span>';

    if ( $args['ex_tax_label'] amp;amp; wc_tax_enabled() ) {
        $return .= ' <small class="woocommerce-Price-taxLabel tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>';
    }


    return apply_filters( 'wc_price', $return, $price, $args, $unformatted_price );
}
  

Ответ №2:

Если вы хотите узнать цену продукта, вы можете использовать этот код:

 global $product;
$product->get_price());
  

Ответ №3:

 require_once( ABSPATH . 'wp-load.php' );
  

Просто напишите это в любом из ваших шаблонов, и тогда вы сможете получить доступ к контенту woocommerce, такому как продукты, заказы. Я попробовал это и хорошо сработал..