JezK
Edit File: woo-design.php
<?php /** * Plugin Name: Add to cart * Plugin URI: https://advaxe.com/ * Description: Applies custom CSS Grid layout, adds admin menu to change styles and button texts. * Version: 1.0.9 * Author: Advaxe */ if ( ! defined( 'WPINC' ) ) { die; } /* ========================================================= * 1. Admin Menu & Settings * ========================================================= */ // অ্যাডমিন মেনু তৈরি করা add_action('admin_menu', 'advaxe_button_admin_menu'); function advaxe_button_admin_menu() { add_menu_page( 'Button Settings', // Page title 'Button Settings', // Menu title 'manage_options', // Capability 'advaxe-button-settings', // Menu slug 'advaxe_button_settings_page', // Callback function 'dashicons-admin-customizer', // Icon 90 // Position ); } // সেটিংস রেজিস্টার করা add_action('admin_init', 'advaxe_register_button_settings'); function advaxe_register_button_settings() { register_setting('advaxe_button_settings_group', 'advaxe_button_style'); register_setting('advaxe_button_settings_group', 'advaxe_add_to_cart_text'); register_setting('advaxe_button_settings_group', 'advaxe_buy_now_text'); } // অ্যাডমিন পেজের ডিজাইন function advaxe_button_settings_page() { ?> <div class="wrap"> <h1>Add to Cart - Button Settings</h1> <form method="post" action="options.php"> <?php settings_fields('advaxe_button_settings_group'); ?> <?php do_settings_sections('advaxe_button_settings_group'); ?> <table class="form-table"> <tr valign="top"> <th scope="row">Select Button Style</th> <td> <select name="advaxe_button_style"> <option value="1" <?php selected(get_option('advaxe_button_style', 2), 1); ?>>Style 1 (With 'পরিমাণ' Text)</option> <option value="2" <?php selected(get_option('advaxe_button_style', 2), 2); ?>>Style 2 (New Design, Equal Height)</option> </select> <p class="description">সিলেক্ট করুন আপনি কোন ডিজাইনটি ব্যবহার করতে চান।</p> </td> </tr> <tr valign="top"> <th scope="row">Add to Cart Text</th> <td> <input type="text" name="advaxe_add_to_cart_text" value="<?php echo esc_attr(get_option('advaxe_add_to_cart_text', 'Add to Cart')); ?>" class="regular-text" /> <p class="description">আপনার কার্ট বাটনের জন্য নতুন টেক্সট দিন (যেমন: কার্টে রাখুন)।</p> </td> </tr> <tr valign="top"> <th scope="row">Buy Now Text</th> <td> <input type="text" name="advaxe_buy_now_text" value="<?php echo esc_attr(get_option('advaxe_buy_now_text', 'Buy Now')); ?>" class="regular-text" /> <p class="description">আপনার এখনই কিনুন বাটনের জন্য নতুন টেক্সট দিন (যেমন: এখনই অর্ডার করুন)।</p> </td> </tr> </table> <?php submit_button(); ?> </form> </div> <?php } /* ========================================================= * 2. Change Button Texts (Filter & JS) * ========================================================= */ // Add to Cart বাটনের টেক্সট পরিবর্তন add_filter( 'woocommerce_product_single_add_to_cart_text', 'advaxe_custom_add_to_cart_text' ); function advaxe_custom_add_to_cart_text( $text ) { $custom_text = get_option( 'advaxe_add_to_cart_text', 'Add to Cart' ); return ! empty( $custom_text ) ? $custom_text : $text; } // Buy Now বাটনের টেক্সট পরিবর্তন (Woodmart থিমের জন্য JS দিয়ে) add_action( 'wp_footer', 'advaxe_custom_buy_now_text_js' ); function advaxe_custom_buy_now_text_js() { if ( is_product() ) { $buy_now_text = get_option( 'advaxe_buy_now_text', 'Buy Now' ); if ( ! empty( $buy_now_text ) ) { ?> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { var buyNowBtn = document.querySelector('#wd-add-to-cart'); if (buyNowBtn) { var textSpan = buyNowBtn.querySelector('.wd-btn-text'); if (textSpan) { textSpan.textContent = '<?php echo esc_js($buy_now_text); ?>'; } else { buyNowBtn.textContent = '<?php echo esc_js($buy_now_text); ?>'; } } }); </script> <?php } } } /* ========================================================= * 3. Button Styles (CSS) * ========================================================= */ function custom_woo_button_design_css() { if ( is_product() ) { // ডাটাবেস থেকে সিলেক্ট করা স্টাইল নেওয়া হচ্ছে (ডিফল্ট 2) $active_style = get_option('advaxe_button_style', 2); ?> <style type="text/css"> /* মূল কন্টেইনার ডিজাইন */ form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: grid !important; grid-template-columns: max-content 1fr; grid-template-rows: auto auto; grid-gap: 12px; width: 100%; max-width: 100%; font-family: sans-serif; align-items: center; margin-top: 15px; } /* --- কোয়ান্টিটি কন্টেইনার (কমন) --- */ form.cart .quantity, .woocommerce-variation-add-to-cart .quantity { display: flex !important; align-items: center; grid-column: 1; grid-row: 1; margin: 0 !important; } form.cart .quantity input.qty::-webkit-outer-spin-button, form.cart .quantity input.qty::-webkit-inner-spin-button, .woocommerce-variation-add-to-cart .quantity input.qty::-webkit-outer-spin-button, .woocommerce-variation-add-to-cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } <?php if ( $active_style == 1 ) : ?> /* ========================================= STYLE 1 (আপনার আগের ডিফল্ট ডিজাইন) ========================================= */ form.cart .quantity::before, .woocommerce-variation-add-to-cart .quantity::before { content: "পরিমাণ:"; font-size: 16px; font-weight: 600; color: #333; margin-right: 2px; display: block !important; } form.cart .quantity, .woocommerce-variation-add-to-cart .quantity { gap: 5px; } form.cart .quantity input, .woocommerce-variation-add-to-cart .quantity input { border: 1px solid #e2e8f0 !important; border-radius: 6px !important; height: 42px !important; background: #fff !important; text-align: center; font-size: 16px; box-sizing: border-box !important; outline: none; padding: 0 !important; margin: 0 !important; box-shadow: none !important; } form.cart .quantity input[type="button"], .woocommerce-variation-add-to-cart .quantity input[type="button"], form.cart .quantity input.btn, .woocommerce-variation-add-to-cart .quantity input.btn { width: 40px !important; color: #68432c !important; font-size: 20px; font-weight: 500; cursor: pointer; transition: 0.2s ease; } form.cart .quantity input[type="button"]:hover, .woocommerce-variation-add-to-cart .quantity input[type="button"]:hover { background: #f8f9fa !important; } form.cart .quantity input.qty, .woocommerce-variation-add-to-cart .quantity input.qty { width: 45px !important; font-weight: 600; color: #1e293b !important; -moz-appearance: textfield; } <?php else : ?> /* ========================================= STYLE 2 (আপনার দেওয়া ছবির নতুন ডিজাইন) ========================================= */ form.cart .quantity::before, .woocommerce-variation-add-to-cart .quantity::before { display: none !important; } form.cart .quantity, .woocommerce-variation-add-to-cart .quantity { border: 1px solid #68432c !important; border-radius: 6px !important; height: 42px !important; box-sizing: border-box !important; background: #f8f9fa !important; overflow: hidden; padding: 0 !important; gap: 0 !important; } form.cart .quantity input, .woocommerce-variation-add-to-cart .quantity input { border: none !important; background: transparent !important; box-shadow: none !important; height: 100% !important; margin: 0 !important; border-radius: 0 !important; outline: none !important; box-sizing: border-box !important; } form.cart .quantity input[type="button"], .woocommerce-variation-add-to-cart .quantity input[type="button"], form.cart .quantity input.btn, .woocommerce-variation-add-to-cart .quantity input.btn { width: 35px !important; color: #333 !important; font-size: 20px !important; cursor: pointer; transition: 0.2s ease; } form.cart .quantity input[type="button"]:hover, .woocommerce-variation-add-to-cart .quantity input[type="button"]:hover { background: #e2e8f0 !important; } form.cart .quantity input.qty, .woocommerce-variation-add-to-cart .quantity input.qty { width: 45px !important; background: #fff !important; color: #1e293b !important; font-weight: 600 !important; text-align: center !important; -moz-appearance: textfield; } <?php endif; ?> /* --- প্রথম লাইন: কার্টে যোগ করুন বাটন --- */ form.cart .single_add_to_cart_button, .woocommerce-variation-add-to-cart .single_add_to_cart_button { background-color: #68432c !important; color: #fff !important; border: none !important; border-radius: 8px !important; padding: 0 10px !important; height: 42px !important; box-sizing: border-box !important; display: flex !important; align-items: center; justify-content: center; gap: 6px !important; font-size: 15px; font-weight: 600; cursor: pointer; grid-column: 2; grid-row: 1; width: 100% !important; transition: opacity 0.2s; margin: 0 !important; white-space: nowrap; } /* --- দ্বিতীয় লাইন: এখনই কিনুন বাটন --- */ form.cart #wd-add-to-cart, .woocommerce-variation-add-to-cart #wd-add-to-cart { background-color: #694129 !important; color: #fff !important; border: none !important; border-radius: 8px !important; padding: 0 20px !important; height: 48px !important; box-sizing: border-box !important; display: flex !important; align-items: center; justify-content: center; gap: 8px !important; font-size: 17px; font-weight: 600; cursor: pointer; grid-column: 1 / -1; grid-row: 2; width: 100% !important; margin: 0 !important; transition: opacity 0.2s; } /* হোভার ইফেক্ট */ form.cart .single_add_to_cart_button:hover, .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover, form.cart #wd-add-to-cart:hover, .woocommerce-variation-add-to-cart #wd-add-to-cart:hover { opacity: 0.9; } /* বাটন আইকনের পজিশন ফিক্স (থিমের স্টাইল ওভাররাইড করার জন্য) */ form.cart .single_add_to_cart_button::before, .woocommerce-variation-add-to-cart .single_add_to_cart_button::before { content: "" !important; display: inline-block !important; position: static !important; transform: none !important; opacity: 1 !important; visibility: visible !important; width: 18px !important; height: 18px !important; margin: 0 !important; background-color: currentColor !important; -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path><line x1="12" y1="10" x2="18" y2="10"></line><line x1="15" y1="7" x2="15" y2="13"></line></svg>') no-repeat center / contain !important; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path><line x1="12" y1="10" x2="18" y2="10"></line><line x1="15" y1="7" x2="15" y2="13"></line></svg>') no-repeat center / contain !important; } form.cart #wd-add-to-cart::before, .woocommerce-variation-add-to-cart #wd-add-to-cart::before { content: "" !important; display: inline-block !important; position: static !important; transform: none !important; opacity: 1 !important; visibility: visible !important; width: 18px !important; height: 18px !important; margin: 0 !important; background-color: currentColor !important; -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>') no-repeat center / contain !important; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>') no-repeat center / contain !important; } /* থিমের ডিফল্ট লোডিং স্পিনার বা অন্য আইকন হাইড করার জন্য */ form.cart .single_add_to_cart_button::after, .woocommerce-variation-add-to-cart .single_add_to_cart_button::after { display: none !important; } /* 📱 মোবাইলের জন্য রেস্পন্সিভ কোড */ @media (max-width: 480px) { form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { grid-gap: 8px; } <?php if ( $active_style == 1 ) : ?> form.cart .quantity input[type="button"], .woocommerce-variation-add-to-cart .quantity input[type="button"], form.cart .quantity input.btn, .woocommerce-variation-add-to-cart .quantity input.btn { width: 32px !important; height: 36px !important; font-size: 18px; } form.cart .quantity input.qty, .woocommerce-variation-add-to-cart .quantity input.qty { width: 38px !important; height: 36px !important; font-size: 14px; } <?php else : ?> form.cart .quantity, .woocommerce-variation-add-to-cart .quantity { height: 36px !important; } form.cart .quantity input[type="button"], .woocommerce-variation-add-to-cart .quantity input[type="button"], form.cart .quantity input.btn, .woocommerce-variation-add-to-cart .quantity input.btn { width: 32px !important; font-size: 18px; } form.cart .quantity input.qty, .woocommerce-variation-add-to-cart .quantity input.qty { width: 38px !important; font-size: 14px; } <?php endif; ?> form.cart .single_add_to_cart_button, .woocommerce-variation-add-to-cart .single_add_to_cart_button { font-size: 15px !important; height: 36px !important; padding: 0 6px !important; } } </style> <?php } } add_action( 'wp_head', 'custom_woo_button_design_css', 100 );