🔶 مخفی کردن نام کاربری نظرات کاربران ووکامرس
در ووکامرس یه مشکلی وحود دارد که می توان نام کاربری و مدیریت در بخش نظرات استخراج کرد و این ممکنه به دلایل امنیتی مورد سو استفاده هکرها قرار بگیرد.
تابع زیر را در فایل functions.php قرار دهید:
در ووکامرس یه مشکلی وحود دارد که می توان نام کاربری و مدیریت در بخش نظرات استخراج کرد و این ممکنه به دلایل امنیتی مورد سو استفاده هکرها قرار بگیرد.
تابع زیر را در فایل functions.php قرار دهید:
function remove_comment_author_class($classes){
foreach($classes as $key => $class)
{
if(strstr($class,"comment-author-"))
{
unset($classes[$key]);
}
}
return $classes;
}
add_filter('comment_class','remove_comment_author_class');
@TheRaymondDev🔶 تفاوت وابستگی های JWT ,Breeze ,Jetstream ,Sanctum ,Auth ,Passport در لاراول چیست؟
بحث احراز هویت و مجوز (Authentication و Authorization) در توسعه وب بسیار حیاتی و مهم است. در فریمورک لاراول، بسیاری از راهحلها و پکیجهای مختلفی برای این موضوع وجود دارد. بیایید هر یک از آنها را بررسی کنیم:
وابستگی Auth: این کلاس یکی از ابزارهای اصلی لاراول است که امکانات احراز هویت را فراهم میکند. با استفاده از این کلاس، شما میتوانید افراد را وارد (login) و خارج (logout) کنید، کاربر جاری را شناسایی کنید و موارد مشابه دیگر.
وابستگی Passport: این یک پکیج است که توسط خود لاراول توسعه داده شده و برای احراز هویت با استفاده از توکنهای OAuth2 طراحی شده است. اگر شما قصد دارید یک API را بسازید که از OAuth2 برای احراز هویت استفاده کند، Passport گزینه مناسبی است.
وابستگی Sanctum: لاراول Sanctum نیز یک پکیج احراز هویت است که برای اپلیکیشنهای SPA (Single Page Application) و موبایل، احراز هویت را سادهتر میکند. اگر قصد دارید از لاراول به عنوان بکاند و یک فریمورک جاوااسکریپت مانند Vue.js یا React به عنوان فرانتاند استفاده کنید، Sanctum گزینه مناسبی است.
وابستگی Jetstream: این یک پکیج است که به شما کمک میکند تا سریعتر سیستمهای مرتبط با کاربر مانند ثبت نام، ورود، تأیید ایمیل و موارد دیگر را ایجاد کنید. این پکیج از تکنولوژیهایی مانند Livewire و Inertia.js نیز پشتیبانی میکند.
وابستگی Breeze : Breeze نیز مشابه Jetstream است، اما سادهتر و بدون وابستگی به Livewire یا Inertia.js. اگر میخواهید یک شروع ساده داشته باشید، Breeze گزینه مناسبی است.
وابستگی JWT (JSON Web Tokens): JWT : یک روش استاندارد برای ایجاد توکنهای احراز هویت است که میتواند برای ایجاد و تأیید توکنهای احراز هویت در بسیاری از برنامهها استفاده شود. در لاراول، پکیجهایی مانند "tymon/jwt-auth" وجود دارد که پشتیبانی از JWT را فراهم میکند.
چرا این همه گزینه وجود دارد؟
هر پکیج یا راهحل، نیازها و موارد استفاده خاصی را در نظر میگیرد. بسته به نوع برنامه و نیازهای شما، ممکن است یکی از این راهحلها بهتر از دیگری برای شما باشد. لاراول سعی دارد گزینههای مختلفی را برای توسعهدهندگان فراهم کند تا بتوانند بر اساس نیازهای خود، راهحل مناسبی را انتخاب کنند.
https://roocket.ir/discuss/27562#subject-97387
@TheRaymondDev
بحث احراز هویت و مجوز (Authentication و Authorization) در توسعه وب بسیار حیاتی و مهم است. در فریمورک لاراول، بسیاری از راهحلها و پکیجهای مختلفی برای این موضوع وجود دارد. بیایید هر یک از آنها را بررسی کنیم:
وابستگی Auth: این کلاس یکی از ابزارهای اصلی لاراول است که امکانات احراز هویت را فراهم میکند. با استفاده از این کلاس، شما میتوانید افراد را وارد (login) و خارج (logout) کنید، کاربر جاری را شناسایی کنید و موارد مشابه دیگر.
وابستگی Passport: این یک پکیج است که توسط خود لاراول توسعه داده شده و برای احراز هویت با استفاده از توکنهای OAuth2 طراحی شده است. اگر شما قصد دارید یک API را بسازید که از OAuth2 برای احراز هویت استفاده کند، Passport گزینه مناسبی است.
وابستگی Sanctum: لاراول Sanctum نیز یک پکیج احراز هویت است که برای اپلیکیشنهای SPA (Single Page Application) و موبایل، احراز هویت را سادهتر میکند. اگر قصد دارید از لاراول به عنوان بکاند و یک فریمورک جاوااسکریپت مانند Vue.js یا React به عنوان فرانتاند استفاده کنید، Sanctum گزینه مناسبی است.
وابستگی Jetstream: این یک پکیج است که به شما کمک میکند تا سریعتر سیستمهای مرتبط با کاربر مانند ثبت نام، ورود، تأیید ایمیل و موارد دیگر را ایجاد کنید. این پکیج از تکنولوژیهایی مانند Livewire و Inertia.js نیز پشتیبانی میکند.
وابستگی Breeze : Breeze نیز مشابه Jetstream است، اما سادهتر و بدون وابستگی به Livewire یا Inertia.js. اگر میخواهید یک شروع ساده داشته باشید، Breeze گزینه مناسبی است.
وابستگی JWT (JSON Web Tokens): JWT : یک روش استاندارد برای ایجاد توکنهای احراز هویت است که میتواند برای ایجاد و تأیید توکنهای احراز هویت در بسیاری از برنامهها استفاده شود. در لاراول، پکیجهایی مانند "tymon/jwt-auth" وجود دارد که پشتیبانی از JWT را فراهم میکند.
چرا این همه گزینه وجود دارد؟
هر پکیج یا راهحل، نیازها و موارد استفاده خاصی را در نظر میگیرد. بسته به نوع برنامه و نیازهای شما، ممکن است یکی از این راهحلها بهتر از دیگری برای شما باشد. لاراول سعی دارد گزینههای مختلفی را برای توسعهدهندگان فراهم کند تا بتوانند بر اساس نیازهای خود، راهحل مناسبی را انتخاب کنند.
https://roocket.ir/discuss/27562#subject-97387
@TheRaymondDev
وبسایت آموزشی راکت
فرق JWT.Breeze .Jetstream .Sanctum .Auth .Passport چیه
سلام
میخوام با بحث های login , logout , register , authorize , authenticate آشنا بشم.
اسم این پکیج هارو شنیدم ولی نمیدونم چی به چیه و کدوم رو باید یاد بگیرم!؟
یا اینکه اصلا فرق JWT, Breeze , Jetstrea...
میخوام با بحث های login , logout , register , authorize , authenticate آشنا بشم.
اسم این پکیج هارو شنیدم ولی نمیدونم چی به چیه و کدوم رو باید یاد بگیرم!؟
یا اینکه اصلا فرق JWT, Breeze , Jetstrea...
🔶 برای برنامه نویسی از هوش مصنوعی Chat GPT استفاده کنید. از اول مخالف هوش مصنوعی بودم اما نمی تونه جای کامل برنامه نویسی رو بگیرد.
وقتی از هوش مصنوعی سوال برنامه نویسی می کنید تقریبا 70 درصد جواب درست را می دهد و 30 درصد هم خودت باید حل کنید.
نکته : بیش از حد به هوش مصنوعی وابسته نشوید و در آینده ممکن است در حل مسائل برنامه نویسی دچار مشکل شوید.
@TheRaymondDev
وقتی از هوش مصنوعی سوال برنامه نویسی می کنید تقریبا 70 درصد جواب درست را می دهد و 30 درصد هم خودت باید حل کنید.
نکته : بیش از حد به هوش مصنوعی وابسته نشوید و در آینده ممکن است در حل مسائل برنامه نویسی دچار مشکل شوید.
@TheRaymondDev
👍2
سلام 🙋♂️
فعلا درگیر اضافه کردن فروش دوره به سایت هستم و پس از اتمام آن ضبط دوره ها شروع خواهد شد.
@TheRaymondDev
فعلا درگیر اضافه کردن فروش دوره به سایت هستم و پس از اتمام آن ضبط دوره ها شروع خواهد شد.
@TheRaymondDev
🔶 نکات مهمی که پیش از شروع برنامه نویسی در ایران باید بدانید!
https://www.zoomit.ir/howto/410070-important-points-starting-programming-in-iran/
@TheRaymondDev
https://www.zoomit.ir/howto/410070-important-points-starting-programming-in-iran/
@TheRaymondDev
زومیت
نکات مهمی که پیش از شروع برنامه نویسی در ایران باید بدانید! - زومیت
اگر به هر دلیلی قصد دارید به دنیای بیانتهای برنامهنویسی وارد شوید، بههیچوجه این مقاله از زومیت را از دست ندهید.
🔶 کد توابع مخفی کردن قیمت محصولات ناموجود در ووکامرس
روش اول :
روش دوم :
روش سوم :
@TheRaymondDev
روش اول :
function mrcode_remove_outofstock_prices( $price, $product ) {
if ( ! $product->is_in_stock() ) {
$price = '';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'mrcode_remove_outofstock_prices', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'mrcode_remove_outofstock_prices', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'mrcode_remove_outofstock_prices', 10, 2 );روش دوم :
<?php
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
global $post, $product;
?>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<p class="price"> <?php
$stockamount = $product->get_stock_quantity();
$price = $product->get_price_html();
$pricelabel = "تماس بگیرید";
if($stockamount == 0)
{
echo $pricelabel;
}
else
{
echo $price;
};
?>
</p>
<meta itemprop="price" content="<?php echo $product->get_price(); ?>" />
<meta itemprop="priceCurrency" content="<?php echo get_woocommerce_currency(); ?>" />
<link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" />
</div>
روش سوم :
.outofstock .price{display:none}
.outofstock .amount{display:none}@TheRaymondDev
👍1
🔶 رفع مشکل کار نکردن صفحات لاراول – لایووایر
لایو وایر یک چارچوب فول استک برای لاراول است که به راحتی می توانید صفحات را داینامیک کنید. در این مقاله می خواهیم مشکل کار نکردن صفحات لاراول – لایو وایر بپردازیم.
همین طور می ببینید در انتهای URL صفحه علامت سوال (?) نمایش می دهد که نشان از کار نکردن صفحات لاراول – لایو وایر است که به این شکل است:
صفحات سمت کاربر (فرانت اند) نمایش داده می شوند و مشکلی نداره اما هیچ داده ای ثبت و نمایش نمی دهد و با کنترلر ارتباط برقرار نمی کند.
اگر فراخوانی صفحات blade به شکل زیر باشد, کار نمی کند چرا که این مدل فراخوانی برای لایو وایر نیست.
لایو وایر متد فراخوانی را در تابع رندر انجام می دهد و از این طریق صفحات را بارگزاری می کند و با کنترلر ارتباط برقرار می کند.
@TheRaymondDev
لایو وایر یک چارچوب فول استک برای لاراول است که به راحتی می توانید صفحات را داینامیک کنید. در این مقاله می خواهیم مشکل کار نکردن صفحات لاراول – لایو وایر بپردازیم.
همین طور می ببینید در انتهای URL صفحه علامت سوال (?) نمایش می دهد که نشان از کار نکردن صفحات لاراول – لایو وایر است که به این شکل است:
http://127.0.0.1:8000/users/create?
صفحات سمت کاربر (فرانت اند) نمایش داده می شوند و مشکلی نداره اما هیچ داده ای ثبت و نمایش نمی دهد و با کنترلر ارتباط برقرار نمی کند.
اگر فراخوانی صفحات blade به شکل زیر باشد, کار نمی کند چرا که این مدل فراخوانی برای لایو وایر نیست.
@extends('layouts.app')
@section('content')
تست
@endsectionلایو وایر متد فراخوانی را در تابع رندر انجام می دهد و از این طریق صفحات را بارگزاری می کند و با کنترلر ارتباط برقرار می کند.
public function render()
{
return view('livewire.support.users.create')
->extends('layouts.app')
->section('content');
}
@TheRaymondDev
👍2
🖥 5 کانال یوتیوب برای دوستانی که در حال یادگیری زبان انگلیسی هستند.
1️⃣ کانال Rachel's English:
👨💻این کانال برای دانش آموزان سطح متوسط تا پیشرفته هست که علاقه مند به بهبود تلفظ و لهجه انگلیسی آمریکایی هستن.
2️⃣ کانال Accent's way English with Hadar :
👨💻یک تدریس جالب و سرگرم کننده برای بهبود تلفظ.
3️⃣ کانال English with jennifer:
👨💻برای زبان آموزان سطح مبتدی تا متوسط، ارائه ساده مطالب و تمرکز ویژه بر تلفظ.
4️⃣ کانال mmmEnglish :
👨💻دستور زبان تلفظ مهارتهای مکالمه و واژگان نکات و ترفند های مفید برای بهبود مهارت هارو ارتباطی در زبان انگلیسی.
5️⃣ کانال Papa Teach me :
👨💻منبع عالی برای هر کسی که به بهبود مهارتهای زبان انگلیسی بریتانیایی علاقه داره.
@TheRaymondDev
1️⃣ کانال Rachel's English:
👨💻این کانال برای دانش آموزان سطح متوسط تا پیشرفته هست که علاقه مند به بهبود تلفظ و لهجه انگلیسی آمریکایی هستن.
2️⃣ کانال Accent's way English with Hadar :
👨💻یک تدریس جالب و سرگرم کننده برای بهبود تلفظ.
3️⃣ کانال English with jennifer:
👨💻برای زبان آموزان سطح مبتدی تا متوسط، ارائه ساده مطالب و تمرکز ویژه بر تلفظ.
4️⃣ کانال mmmEnglish :
👨💻دستور زبان تلفظ مهارتهای مکالمه و واژگان نکات و ترفند های مفید برای بهبود مهارت هارو ارتباطی در زبان انگلیسی.
5️⃣ کانال Papa Teach me :
👨💻منبع عالی برای هر کسی که به بهبود مهارتهای زبان انگلیسی بریتانیایی علاقه داره.
@TheRaymondDev
👍3
🔶 بهترین زبان های برنامه نویسی برای هر حوزه؛ هر آنچه قبل از آغاز کار باید بدانید!
https://www.zoomit.ir/howto/410216-best-programming-languages-for-every-field/
@TheRaymondDev
https://www.zoomit.ir/howto/410216-best-programming-languages-for-every-field/
@TheRaymondDev
زومیت
بهترین زبان های برنامه نویسی برای هر حوزه؛ هر آنچه قبل از آغاز کار باید بدانید!
برای هوش مصنوعی، بازیسازی یا طراحی سایت چه زبانهایی مناسب هستند؟ ما در این مقاله تمام زبانهای ضروری برای حوزههای مختلف دنیای IT را معرفی کردهایم.
🔶 نمایش برچسب جدید در محصولات ووکامرس
عملکرد این برچسب اینکه هر محصولی که منتشر شود برچسب جدید بهش چسبانده میشه و 30 روز برچسب آن می ماند و بعد از آن خودکار حذف می شود.
@TheRaymondDev
عملکرد این برچسب اینکه هر محصولی که منتشر شود برچسب جدید بهش چسبانده میشه و 30 روز برچسب آن می ماند و بعد از آن خودکار حذف می شود.
function themefars_new_badge_shop_page() {
global $product;
$newness_days = 30;
$created = strtotime( $product->get_date_created() );
if ( ( time() - ( 60 * 60 * 24 * $newness_days ) ) < $created ) {
echo '<span class="itsnew onsale">' . esc_html__( 'جدید', 'woocommerce' ) . '</span>';
}
}@TheRaymondDev
🔶 کد ویرایش فیلدهای اضافی پرداخت ووکامرس
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );@TheRaymondDev
add_filter( 'woocommerce_billing_fields' , 'custom_override_billing_fields' );
add_filter( 'woocommerce_shipping_fields' , 'custom_override_shipping_fields' );
function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_city']);
unset($fields['shipping']['shipping_state']);
unset($fields['shipping']['shipping_country']);
unset($fields['shipping']['shipping_company']);
unset($fields['shipping']['shipping_address_1']);
unset($fields['shipping']['shipping_address_2']);
unset($fields['shipping']['shipping_postcode']);
unset($fields['shipping']['shipping_city']);
return $fields;
}
function custom_override_billing_fields( $fields ) {
unset($fields['billing_state']);
unset($fields['billing_country']);
unset($fields['billing_company']);
unset($fields['billing_address_1']);
unset($fields['billing_address_2']);
unset($fields['billing_postcode']);
unset($fields['billing_city']);
return $fields;
}
function custom_override_shipping_fields( $fields ) {
unset($fields['shipping_state']);
unset($fields['shipping_country']);
unset($fields['shipping_company']);
unset($fields['shipping_address_1']);
unset($fields['shipping_address_2']);
unset($fields['shipping_postcode']);
unset($fields['shipping_city']);
return $fields;
}
🔶 کد تابع نمایش برچسب محصولات تخفیف خورده ووکامرس
@TheRaymondDev
add_filter( 'woocommerce_sale_flash', 'add_percentage_to_sale_badge', 20, 3 );نمایش برچسب تخفیف :
function add_percentage_to_sale_badge( $html, $post, $product ) {
if( $product->is_type('variable')){
$percentages = array();
// Get all variation prices
$prices = $product->get_variation_prices();
// Loop through variation prices
foreach( $prices['price'] as $key => $price ){
// Only on sale variations
if( $prices['regular_price'][$key] !== $price ){
// Calculate and set in the array the percentage for each variation on sale
$percentages[] = round( 100 - ( floatval($prices['sale_price'][$key]) / floatval($prices['regular_price'][$key]) * 100 ) );
}
}
// We keep the highest value
$percentage = max($percentages) . '%';
} elseif( $product->is_type('grouped') ){
$percentages = array();
// Get all variation prices
$children_ids = $product->get_children();
// Loop through variation prices
foreach( $children_ids as $child_id ){
$child_product = wc_get_product($child_id);
$regular_price = (float) $child_product->get_regular_price();
$sale_price = (float) $child_product->get_sale_price();
if ( $sale_price != 0 || ! empty($sale_price) ) {
// Calculate and set in the array the percentage for each child on sale
$percentages[] = round(100 - ($sale_price / $regular_price * 100));
}
}
// We keep the highest value
$percentage = max($percentages) . '%';
} else {
$regular_price = (float) $product->get_regular_price();
$sale_price = (float) $product->get_sale_price();
if ( $sale_price != 0 || ! empty($sale_price) ) {
$percentage = round(100 - ($sale_price / $regular_price * 100)) . '%';
} else {
return $html;
}
}
return '<span class="onsale badge bg-danger fs-6 rounded-5"><i class="fa-light fa-badge-percent"></i> ' . $percentage . ' ' . esc_html__( 'تخفیف', 'woocommerce' ) . ' </span>';
}
<?php echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( '', 'woocommerce' ) . '</span>', $post, $product ); ?>
@TheRaymondDev
🔥1
🔶 سعی دارم کد نویسی قالب رو زودتر تمام کنم و در سایت خودم برای فروش قرار میدم.
بعد از اتمام آن ضبط دوره ووکامرس آغاز میشه...
@TheRaymondDev
بعد از اتمام آن ضبط دوره ووکامرس آغاز میشه...
@TheRaymondDev
❤1
🔶 متاسفانه اسم دامنه سایت به نام ارکیده به خاطر سراسری بودن اسم در گوگل قابل شناسایی نیست.
مجبورم یه اسم جدید براش تعریف و دامنه ثبت کنم. 😐
@TheRaymondDev
مجبورم یه اسم جدید براش تعریف و دامنه ثبت کنم. 😐
@TheRaymondDev
😁1
🔶 کد تابع نمایش برچسب های پست ووکامرس
<?php@TheRaymondDev
$product_tags = get_terms('product_tag');
foreach ($product_tags as $tag) {
echo '<a href="' . esc_url(get_term_link($tag)) . '">' . esc_html($tag->name) . '</a>';
}
?>
🔶 محدودیت های شدید اینترنتی و اجتماعی ایران باعث مهاجرت گسترده نخبگان ایرانی می شود.
فرقی نمی کند چه رشته ای باشد و این محدودیت ها باعث میشه که جلوی هر پیشرفتی بگیرد و نخبه به چه امیدی در این کشور بماند.
@TheRaymondDev
فرقی نمی کند چه رشته ای باشد و این محدودیت ها باعث میشه که جلوی هر پیشرفتی بگیرد و نخبه به چه امیدی در این کشور بماند.
@TheRaymondDev
👍2
سلام 🙋♂️
خب دامنه جدید ثبت کردم
با اینکه اسمم رایموند هست و آخر یوم ium داره که خلاصه اش کردم rayium
خب دامنه شد rayium.ir
به فارسی میشه راییوم
@TheRaymondDev
خب دامنه جدید ثبت کردم
با اینکه اسمم رایموند هست و آخر یوم ium داره که خلاصه اش کردم rayium
خب دامنه شد rayium.ir
به فارسی میشه راییوم
@TheRaymondDev
🔶 طبق صحبت هایی که با کانال پوینا کردم می گوید که کش ردیس در هاست های اشتراکی باگ دارد و اما در سرور های اختصاصی چنین مشکلی ندارد.
می توانید کش ردیس در سرور اختصاصی استفاده کنید.
@TheRaymondDev
می توانید کش ردیس در سرور اختصاصی استفاده کنید.
@TheRaymondDev
❤1