0

基本的に私が取り組んでいるストアでは、デフォルトの「カートに追加」フォームまたは「売り切れ」メッセージを表示する代わりに、「Call to Order」メッセージを表示するオプションが必要です。

商品編集のバックエンドにカスタム メタボックス チェックボックスを追加し、単一の商品をカートに追加テンプレートに if ステートメントを追加することで、これを実現しました。唯一の問題は、カートに追加フォームと商品を非表示にすることだけです。 「http://localhost/wordpress/woocommerce/shop/?add-to-cart=14」のように追加できるので、完全な証明ではありません。

私が探しているのは、カスタム チェックボックスがオンになっているときに何らかの方法で製品を在庫切れにすることです。WooCommerce プラグイン管理者のバックエンド ファイルを探していましたが、これはよく使用されます。

update_post_meta( $post_id, '_stock_status', 'outofstock' );

だから私はそれが functons.php でこれと同じくらい簡単だと思った:

global $post;
if ($meta_box = get_post_meta($post->ID, "_cmb_test_checkbox", true) ) :
update_post_meta( $post_id, '_stock_status', 'outofstock' );
endif;

そうではないことが判明しました。これは私を夢中にさせているので、どんな助けも大歓迎です。

乾杯!

4

2 に答える 2

0

在庫切れボタンを非表示にするには:

    if (!function_exists('woocommerce_template_loop_add_to_cart')) {
        function woocommerce_template_loop_add_to_cart() {
            global $product;
            if (!$product->is_in_stock()) return;
            woocommerce_get_template('loop/add-to-cart.php');
        }
    }

[カートに追加] ボタンを変更するには:

// Change the "Add to Cart" button on the single product page.
    function woo_custom_cart_button_text() {
        return __('My Button Text', 'woocommerce'); 
    }

    add_filter('single_add_to_cart_text', 'woo_custom_cart_button_text');

または、特にテンプレート構造を変更したい場合:

/woocommerceテーマのディレクトリにというフォルダーを作成し、このフォルダー内に別のフォルダーを作成し、その中にファイル/loopを配置します。add-to-cart.php次に、17行目を変更します

から:

<p class="out-of-stock" ><?php echo apply_filters( 'out_of_stock_add_to_cart_text', __( 'Read More', 'woocommerce' ) ); ?></p>

に:

<p class="out-of-stock" ><?php echo apply_filters( 'out_of_stock_add_to_cart_text', __( 'Out of Stock', 'woocommerce' ) ); ?></p>
于 2013-02-18T17:50:16.273 に答える